reference:language:bitwisecompoundand
compound bitwise AND (&=)
描述
符合运算按位与运算符(&=)经常被用来将一个变量和常量进行运算使变量某些位变为0.这通常被称为“清算”或“复位”位编程指南。
语法
x &= y; // 等价于 x = x & y;
参数
x: char,int或long类型变量
Y:char,int或long类型常量
例如
首先,回顾一下按位与(&)运算符
0 0 1 1 运算元1 0 1 0 1 运算元2 ---------- 0 0 0 1(运算元1&运算元2) - 返回的结果
任何位与0进行按位与操作后被清零,如果myBite是变量
myByte&B00000000 = 0;
因此,任何位与1进行“按位与运算”后保持不变
myByte B11111111 = myByte;
注意:因为我们用位操作符来操作位,所以使用二进制的变量会很方便。如果这些数值是其他值将会得到同样结果,只是不容易理解。同样,B00000000是为了标示清楚,0在任何进制中都是0(恩。。有些哲学的味道) 因此 - 清除(置零)变量的任意位0和1,而保持其余的位不变,可与常量B11111100进行复合运算按位与(&=)
1 0 1 0 1 0 1 0变量 1 1 1 1 1 1 0 0 mask ---------------------- 1 0 1 0 1 0 0 0
变量不变 位清零
将变量替换为x可得到同样结果
X X X X X X X X变量 1 1 1 1 1 1 0 0 mask ---------------------- X X X X X X 0 0
变量不变 位清零
同理
myByte = 10101010; myByte&= B1111100 == B10101000;
reference/language/bitwisecompoundand.txt · 最后更改: 2023/06/07 04:23 由 127.0.0.1