为什么Java中有两个Right Shift运算符和一个Left Shift运算符?
我是java的新手,并且知道java >>
和>>>
中有两个Right Shift运算符,但只有一个左移运算符<<
。 为什么会这样?
因为逻辑和算术左移操作是相同的( 来自维基百科 )。
- 算术移位
- 逻辑转变
注意两个左移位中的符号位(最左边的位)会发生什么。
右移运算符是一个带( >>
)和一个没有( >>>
)符号扩展。 左移操作没有符号扩展组件。
例如,以下表达式都是正确的:
(0x80000000 >> 1) == 0xC0000000 (0x80000000 >>> 1) == 0x40000000