Java 运算符

按位与赋值运算符 (&=) 为第一个操作数分配一个等于两个操作数按位与运算结果的值。

(x &= y) 等效to (x = x & y)

按位与运算符 (&) 是一个二元运算符,它采用两个长度相等的位模式并对每对相应位执行逻辑与运算。如果同一位置的两个位均为 1,则返回 1,否则返回 0。

Bit_1Bit_2Bit_1 和 Bit_2
000
100
010
111

下面的示例描述了按位与运算符的工作原理:

50 & 25 returns 16

     50    ->    110010  (In Binary)
   & 25    ->  & 011001  (In Binary)
    ----        --------
     16    <-    010000  (In Binary) 

使用按位与赋值运算符(&=)的代码如下:

public class MyClass {
  public static void main(String[] args) {
    int x = 50;
    int y = 25;

    //按位与赋值运算
    x &= y;

    //显示结果
    System.out.println("x = "+ x);
  }
} 

输出上述代码的内容为:

x = 16 

示例:检查数字是偶数还是奇数

偶数的最后一位始终是0,而对于奇数,最后一位始终为 1。因此,对于给定数字 n,如果 n 为偶数,则 (n & 1) 返回 0,否则返回 1

Even Number: 

     50   ->    110010  (In Binary)
    & 1   ->  & 000001  (In Binary)
    ----       --------
      0   <-    000000

Odd Number: 

     99   ->    1100011  (In Binary)
    & 1   ->  & 0000001  (In Binary)
    ----       ---------
      1   <-    0000001 

下面的代码检查给定的数字是偶数还是奇数:

public class MyClass {
  static void CheckEven(int MyNum) {
    int x = MyNum;
    x &= 1;
    if (x == 1){
      System.out.println(MyNum + " is an odd number.");
    } else {
      System.out.println(MyNum + " is an even number.");
    }
  }
  
  public static void main(String[] args) {
    CheckEven(50);
    CheckEven(99);
  }
} 

上面的代码将给出以下结果输出:

50 is an even number.
99 is an odd number.