为什么Java中有两个右移运算符而只有一个左移运算符?

为什么Java中有两个右移运算符而只有一个左移运算符?,java,operators,Java,Operators,我是java新手,并且知道java中有两个右移运算符>和>>,但是只有一个左移运算符右移运算符是一个带(>)符号扩展名的运算符,一个没有(>)符号扩展名的运算符。左移位操作没有符号扩展组件 例如,以下表达式均为真: (0x80000000 >> 1) == 0xC0000000 (0x80000000 >>> 1) == 0x40000000 因为逻辑和算术左移操作是相同的() 请注意在两个左移位中的符号位(最左边的位)发生了什么情况。根据您

我是java新手,并且知道java中有两个右移运算符
>
>>
,但是只有一个左移运算符
右移运算符是一个带(
>
)符号扩展名的运算符,一个没有(
>
)符号扩展名的运算符。左移位操作没有符号扩展组件

例如,以下表达式均为真:

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

因为逻辑和算术左移操作是相同的()


请注意在两个移位中的符号位(最左边的位)发生了什么情况。

根据您对右移位运算符的了解,您有什么想法吗?这在“太”中有解释。@petermm抱歉,页面未找到原因。?我是新来的,请原谅我的愚蠢question@sum2000标志位在哪里?@DaveNewton停止欺负周围的人;)也许他只是在读一些“Java新手版”手册,上面写着“Java有>>,>>>,但是在计算声誉时没有考虑@sum2000评论。从什么时候开始问一个完全合理的问题“欺凌”呢“?@Max但我相信他可以利用提供的信息想出一些想法,而你认为他无法通过理性来理解。。。具有讽刺意味的是,认为自己聪明的人却被指控欺凌他人。