按位与赋值运算符 (&=) 为第一个操作数分配一个等于两个操作数按位与运算结果的值。
(x &= y) 等效to (x = x & y)
按位与运算符 (&) 是一个二元运算符,它采用两个长度相等的位模式并对每对相应位执行逻辑与运算。如果同一位置的两个位均为 1,则返回 1,否则返回 0。
Bit_1 | Bit_2 | Bit_1 和 Bit_2 |
---|---|---|
0 | 0 | 0 |
1 | 0 | 0 |
0 | 1 | 0 |
1 | 1 | 1 |
下面的示例描述了按位与运算符的工作原理:
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.