为什么Java不支持<<<
(无符号左移)运算符,但支持>>>
(无符号右移)运算符?
答案 0 :(得分:20)
Java添加运算符“&gt;&gt;&gt;”执行逻辑右移,但是 因为逻辑和算术左移操作是 相同,没有“&lt;&lt;&lt;&lt;&lt; Java中的运算符。
答案 1 :(得分:7)
为什么Java不支持
<<<
(无符号左移)运算符,但支持>>>
(无符号右移)运算符?
因为(假设的)无符号左移运算符与现有的左移运算符完全相同。
(提示:将二进制整数乘以2需要左移1并使最右边的位为零,无论整数表示是有符号还是无符号。在一张纸上写一些例子并自己测试。)
答案 2 :(得分:4)
为什么Java不支持&lt;&lt;&lt; (无符号左移)运算符,但是 确实支持&gt;&gt;&gt; (无符号右移)算子?
那是因为当您离开位时,最左边的位(AKA SIGNED位)无论如何都会丢失。
由于无符号左移运算符与现有的左移运算符完全相同,我们没有。
答案 3 :(得分:0)
我认为这是一个设计错误。 &lt;&lt;&lt;不是算术转移。 &LT;&LT;假设乘以2 如果你这样做
0xF0FFFFFF&lt;&lt; 4
它返回正数! 负数乘以2应该永远不会得到正数。 &lt;&lt;正在做&lt;&lt;&lt;工作