为什么Java中有两个Right Shift运算符和一个Left Shift运算符?

我是java的新手,并且知道java >>>>>中有两个Right Shift运算符,但只有一个左移运算符<< 。 为什么会这样?

因为逻辑和算术左移操作是相同的( 来自维基百科 )。

  • 算术移位

对剩下

  • 逻辑转变

对剩下

注意两个移位中的符号位(最左边的位)会发生什么。

右移运算符是一个带( >> )和一个没有( >>> )符号扩展。 左移操作没有符号扩展组件。

例如,以下表达式都是正确的:

 (0x80000000 >> 1) == 0xC0000000 (0x80000000 >>> 1) == 0x40000000