左移运算符
<<
1 << 2 // 1 * 2 的 2次方并取整:4
1 << 4 // 1 * 2 的 4 次方并取整:16
-2 << 4 // -2 * 2 的 4 次方并取整:-32
右移运算符
带符号右移 >>
4 >> 1 // 4 除以 2 的 1 次方并取整:2
-4 >> 2 // -4 除以 2 的 2 次方并取整:-1
无符号右移 >>>
对于正数来说和带符号右移相同,对于负数来说不同。
4 >>> 1 // 4 除以 2 的 1 次方并取整:2
-4 >>> 1 // 2147483646,之所以是这个结果,请看下面原理解释
原理:
左移:
按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。
带符号右移:
按二进制形式把所有的数字向右移动对应的位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1。
无符号右移:
按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补零。对于正数来说和带符号右移相同,对于负数来说不同。 其他结构和 >> 相似。
网友评论