java中的位运算及移位运算
为了方便对二进制位进行操作,Java给我们提供了以下四个二进制位操作符:
& 按位与
| 按位或
^ 按位异或
~ 按位取反
Java中有三个移位运算符:
左移:<< 丢弃最高位,0补最低位;num << 1,相当于num乘以2
带符号右移:>> 符号位不变,左边补上符号位;num >> 1,相当于num除以2
无符号右移:>>> 忽略符号位,空位都以0补齐;
eg:
数 x x<<2 x>>2 x>>>2
17 00010001 00¦01000100 00000100¦01 00000100¦01
-17 11101111 11¦10111100 11111011¦11 00111011¦11