移位运算符是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。
以下是3种的区别以及举例,因为负数比较特殊,所以此处举例都使用-1分别移动10位的情况来举例。
<<左移
按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。
11111111111111111111111111111111
11111111111111111111110000000000
>>右移
按二进制形式把所有的数字向右移动对应位移位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1。
11111111111111111111111111111111
11111111111111111111111111111111
>>>无符号右移
按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移相同,对于负数来说不同。
11111111111111111111111111111111
00000000001111111111111111111111