用户工具

站点工具


reference:language:bitwisecompoundor

差别

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


前一修订版
reference:language:bitwisecompoundor [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1
行 1: 行 1:
 +====== compound bitwise OR (|=) ======
 +
 +===== 描述 =====
 +
 +复合操作符(| =)经常用于变量和常量“设置”(设置为1),尤其是变量中的某一位。
 +===== 语法 =====
 +<code>
 +x |= y;   //等价于 x = x | y; 
 +</code>
 +===== 参数 =====
 +
 +x: char,int或long类型
 +
 +y: 整数,字符或长整型常量
 +===== 例如 =====
 +
 +首先,回顾一下OR(|)运算符
 +<code>
 +    0  1  1    运算元1
 +    1  0  1    运算元2
 +   ----------
 +   0 1 1 1(运算元1 | 运算元2) - 返回的结果
 +</code> 
 +如果变量myByte中某一位与0经过按位或运算后不变。
 +<code>
 +myByte | B00000000 = myByte;
 +</code>
 +与1经过或运算的位将变为1.
 +<code>
 +myByte | B11111111 B11111111;
 +</code>
 +因此 - 设置变量的某些位为0和1,而变量的其他位不变,可与常量B00000011进行按位与运算(| =)
 +<code>
 +1 0 1 0 1 0 1 0变量
 +0 0 0 0 0 0 1 1
 +----------------------
 +1 0 1 0 1 0 1 1
 +</code> 
 +变量保持不变
 +位设置
 + 
 + 
 +接下来的操作相同,只是将变量用x代替
 +<code>
 +X X X X X X X X变量
 +0 0 0 0 0 0 1 1 mask
 +----------------------
 +X X X X X X 1 1
 +</code> 
 +变量保持不变
 +位设置
 + 
 +同上:
 +<code>
 +myByte = B10101010;
 + 
 +myByte | = B00000011 == B10101011;
 +</code>
 +