位操作运算符是用来进行二进制位运算的运算符。它分为两类:逻辑位运算符和移位运算符。
1、逻辑位运算符
(1)单目逻辑位运算符:~(按位求反)
作用是将各个二进制位由1变0,由0变1。
(2)双目逻辑运算符:&(按位与),|(按位或),^(按位异或)
其中优先级&高于^,而^高于|。
& :两个都为1时结果为1。
| :两个其中有一个为1则结果为1。
^ :两个不同则结果为1,否则为0。
2、移位运算符
移位运算符有两个,<<(左移)、>>(右移)。两个 都是双目运算符。
例. 指出下面表达式的功能。
(p&0377)|(k&0xff)<<8
答:将整数p的低字节作为作为结果的低字节,k的低字节作为结果的高字节拼成一个新的整数。
针对两个操作数011和027,表3-8给出各个位运算符的计算实例,运算结果在表3-7中。为了避免符号位的麻烦(它与机器有关),我们采用无符号的整数。
unsigned char x = '\011';
unsigned char y = '\027';