-
一个二进制位可记录某种对象的开关状态
-
位反运算符"~"
~ 0101 0101
= 1010 1010
unsigned char s=0x55; s=~s
在实际应用中,位反运算可以将操作数中所有状态位同时进行反制。
例如,一个无符号字符型变量s,用s来记录八盏电灯的开关状态,对变量s进行位反运算,就可以将八盏电灯中亮着的电灯关闭,不亮的灯开启。C++原程序中没有办法书写二进制,通常我们将二进制转化为十六进制
- 位与运算符"&"
0011 0011
& 0000 1111
= 0000 0011
位与运算符是双目运算符,参与运算的两个数都为1则结果为1,否则结果为0
unsigned char s; s & 0x2 0000 0010
bbbb bbbb 操作数s,b表示0或1
& 0000 0010 检测倒数第二位状态的掩码
运算结果:保留倒数第二位,其他位变成0
= 0000 00b0 如果该结果等于0,则倒数第二位的状态为0
如果该结果不等于0,则倒数第二位的状态为1
- 位或运算符 “|”
0011 0011
| 0000 1111
= 0011 1111
位或运算符也是一个双目运算符