用户工具

站点工具


reference:language:bitwisecompoundand

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

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