操作符 | 名称 | 含义 | 例子 |
& | 按位与 | 两位都位1是,值是1,否则为0 | 101 & 100=100 |
| | 按位或 | 只要有一位位1,值就为1,两位都为0时,值为0 | 101 | 100 =101 |
~ | 按位取反 | 取相反的值,即:值为1,取反后为0.值为0,取反后为1 | ~101=010 |
^ | 按位异或 | 两个值不同,值为1,相同则为0 | 101 ^100=001 |
<< | 左移 | 向左移动,低位补0 | 100<<3= 100000 |
>> | 带符号右移 | 带符号右移,负数高位补1,正数补0 | 假设用8位表示整数:10000001>>3= 11110000 |
>>> | 无符号移 | 不带符号右移,不论负数还是正数,高位补0 | 假设用8位表示整数:10000001>>3= 00010000 |
注意事项:
1、位操作是针对2进制数来操作的。所以,人工计算的话,需要先转换成2进制数,再进行计算。
2、写代码的时候,经常会用16进制表示整数,需要注意整数的总位数,高位可能要补0.
例如:0xff & 0x262 要转换成:0x00ff & 0x0262这样来看,就比较明白的。当然,最终运算还是要转成2进制:
3、表格中的整数假设为8位,是为了方便演示。实际要以计算机为准。通常整形是32位。