位运算符:
是直接对二进制进行运算
运算符 | 运算 | 范例 | 结果 |
<< | 左移 | 3<<2(3*2*2)向左移动2位 | 12 |
>> | 右移 | 3>>1 (3/2)向右移动1位 | 1 |
>>> | 无符号右移 | -3>>>1 | 2147483646 |
& | 与 | 3&2 | 2 |
| | 或 | 5|6 | 4 |
^ ~ | 非 取反码 | 1^5 ~5 | 4 -6 |
左移:
左移运算,其意义就是*2,
原来的位向左边移动指定位数,低位补0,高位超出则丢弃
右移:
右移运算,其意义就是除以2
正数右移,低位丢弃,高位补0
负数右移,低位丢弃,高位补1
无符号右移:
不管是正数还是负数,其他移动,最高位都是补0,最低为丢弃
取反:
对二进制位,是0的,就取1,是1的就取0