描述中的对象关系即为:
a: 1 1 1 1
b: 1 0 0 1
结果: 1 0 0 1
操作 | 用法 | 描述 | 表达式 | 结果 | 二进制说明 |
---|---|---|---|---|---|
按位与 | a & b | 除了1对应1为1,其余都为 0 | 15 & 9 | 9 | 1111 & 1001 = 1001 |
按位或 | a | b | 除了0对应0为0,其余都为 1 | 15 & 9 | 15 | 1111 & 1001 = 1111 |
按位异或 | a ^ b | 相反为1,相同为0 | 15 & 9 | 6 | 1111 & 1001 = 0110 |
按位非 | a ^ b | 反转位 | ~15 | -16 | ~ 0000 0000 … 0000 1111 = 1111 1111 … 1111 0000 |
左移 | a<<b | 将a 向左移动 b位 | 9<<2 | 36 | 1001 向左移动两位 100100 |
右移 | a>>b | 将a 向左移动 b位 | 9>>2 | 2 | 1001 向右移动位 10 |
注意:所有32位都使用按位NOT运算符求逆,并且最高有效(最左边)位设置为1的值表示负数(二进制补码)。~x计算得出与计算结果相同的值-x - 1。