位逻辑运算符用于对数据中的二进制位进行测试、置位。
- 按位与的主要作用是提取(或保留)一个数的某(些)位,其余各位置0;
- 按位或的主要作用是将一个数的某(些)位置1,其余各位不变;
- 按位异或的主要作用是使一个数的某(些)位翻转(即原来为1的变为0,为0的变为1),其余各位不变;
- 按位非的主要作用是间接地构造一个数,以增强程序的可移植性
使用位逻辑运算符的例子
设
unsigned short a=0123, b=0xA2;
- a 为无符号八进制整数,对应的二进制数是0000 0000 0101 0011(十进制83)
- b 为无符号十六进制整数,对应的二进制数是0000 0000 1010 0010(十进制162)
1. 表达式~a
0000 0000 0101 0011
~ 1111 1111 1010 1100
2. 表达式 a & b
0000 0000 0101 0011
& 0000 0000 1010 0010
0000 0000 0000 0010
3. 表达式 a | b
0000 0000 0101 0011
| 0000 0000 1010 0010
0000 0000 1111 0011
4. 表达式 a ^ b
0000 0000 0101 0011
^ 0000 0000 1010 0010
0000 0000 1111 0001