位运算符作用域证书类型的运算对象,并把运算对象看成是二进制位的集合
运算符 | 功能 | 用法 |
~ | 位求反 | ~expr |
<< | 左移 | expr1 << expr2 |
>> | 右移 | expr1 >> expr2 |
& | 位与 | expr & expr |
^ | 位异或 | expr ^ expr |
| | 位或 | expr | expr |
在位操作中,并没有明确规定如何处理符号位,所以建议操作无符号类型。
移位运算符
左移运算符(<<): 在右侧插入值为0的二进制位
右移运算符(>>): 如果操作数为无符号类型或为正数,则插入0,如果操作数为负数则依赖于环境,插入符号位副本,或零。
位求反运算
按照二进制位将一个数字的每一位1变为0,0变为1
位与、位或、位异或
位与 &:对应位都为1则是1,否则是0
位或 | :对应位有一个是1则为1,否则为0
异或 ^:对应位只有一个是1返回1,否则为零