1、<< 左移
默认低位补0
eg: 11 << 1
11的二进制原码:00001011
11的二进制补码:00001011
运算后____原码:00010110
即:22(11x2)
2、>> 右移
如果为正数,高位补0,如果为负数,高位补1
eg1: 11 >> 1
11的二进制原码:00001011
11的二进制补码:00001011
运算后____原码:00000101
即:5 (11/2向下取整)
eg2: -11 >> 1
-11的二进制原码:10001011
-11的二进制反码:11110100
-11的二进制补码:11110101(反码+1)
运算后____补码:11111010
运算后____反码:11111001(补码-1)
运算后____原码:10000110
即:-6 (-11/2向下取整)
3、>>> 无符号右移
也叫逻辑右移,不论正负,右移高位都是补0
eg1: 11 >>> 1
同 11>>1
eg2: -11 >>> 1
-11的二进制原码:10001011
-11的二进制反码:11110100
-11的二进制补码:11110101(反码+1)
运算后____补码:01111010
运算后____反码:01111001(补码-1)
运算后____原码:00000110
即: 6