C和C++共有6种位运算
& 按位与 a&b a和b每一位进行与运算
| 按位或 a|b a和b每一位进行或运算
^ 按位异或 a^b a和b每一位进行异或运算
~ 按位取反 ~a 将a的每一位取反
<< 向左移位 a<<b 将a的每一位向左移b位
>> 向右移位 a>>b 将a的每一位向右移b位
与运算:
对应位都为1则为1,否则为0
例如,3 & 14
结果为2,计算方法为:
3 的二进制表示: 00000011 ;
14 的二进制表示: 00001110 ;
3 & 14 的二进制表示: 00000010 。
或运算:
对应位都为0是为0,否则为1
例如,3 | 14
结果为15,计算方法是:
3 的二进制表示: 00000011 ;
14 的二进制表示: 00001110 ;
3 | 14 的二进制表示: 00001111 。
异或运算:
对应位不相同为1,相同为0
例如,3 ^ 14
结果为13,计算方法是:
3 的二进制表示: 00000011 ;
14 的二进制表示: 00001110 ;
3 ^ 14 的二进制表示: 00001101 。