复合操作符(| =)经常用于变量和常量“设置”(设置为1),尤其是变量中的某一位。
x |= y; //等价于 x = x | y;
x: char,int或long类型
y: 整数,字符或长整型常量
首先,回顾一下OR(|)运算符
0 0 1 1 运算元1 0 1 0 1 运算元2 ---------- 0 1 1 1(运算元1 | 运算元2) - 返回的结果
如果变量myByte中某一位与0经过按位或运算后不变。
myByte | B00000000 = myByte;
与1经过或运算的位将变为1.
myByte | B11111111 B11111111;
因此 - 设置变量的某些位为0和1,而变量的其他位不变,可与常量B00000011进行按位与运算(| =)
1 0 1 0 1 0 1 0变量 0 0 0 0 0 0 1 1 ---------------------- 1 0 1 0 1 0 1 1
变量保持不变 位设置
接下来的操作相同,只是将变量用x代替
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
变量保持不变 位设置
同上:
myByte = B10101010; myByte | = B00000011 == B10101011;