|=
关于 |= 运算符:
|= 运算符 处理方式如同 += 这一类的运算符,拆解开就是 a = a | b;
代码如下:
int a = 5; // 0000 0101 int b = 3; // 0000 0011 a |= b; // 0000 0111 // 具体规则 // 两个二进制对应位为0时该位为0,否则为1
&=
&= 和 |= 基本是一样的,只不过对于比较同位方式不同
int a = 5; // 0000 0101 int b = 3; // 0000 0011 a |= b; // 0000 0001 // 具体规则 // 两个二进制对应位都为1时则为1,否则为0
^=
^= 和 |= 基本是一样的,只不过对于比较同位方式不同
int a = 5; // 0000 0101 int b = 3; // 0000 0011 a |= b; // 0000 0110 // 具体规则 // 两个二进制的对应位相同,结果为0则为0,否则为1
总结:
|=:两个二进制对应位都为0时,结果等于0,否则结果等于1;
&=:两个二进制的对应位都为1时,结果为1,否则结果等于0;
^=:两个二进制的对应位相同,结果为0,否则结果为1。
& 和 | 都是位运算符
& 按位与
3&5则 0011 &0101 0001 // &同为1时为1,否则为0
| 按位或
3|5则 0011 |0101 0111 // 同为0时为0,否则为1
注意: 逻辑运算符( || ),均为短路运算符, 满足第一个条件,则第二个条件不会在执行
int x, y = 10;
if((x = 0) == 0 || (y=20) == 20) {
System.out.println("x = " + x + ",y = " + y);
// 输出 x = 0, y = 10
}



