为什么Java不支持<<<
(无符号左移)运算符,但支持>>>
(无符号右移)运算符?
问问题
784 次
4 回答
21
Java添加了运算符“>>>”来执行逻辑右移,但是由于逻辑和算术左移操作是相同的,所以Java中没有“<<<”运算符。
于 2013-03-10T03:39:41.687 回答
8
为什么Java不支持
<<<
(无符号左移)运算符,但支持>>>
(无符号右移)运算符?
因为(假设的)无符号左移运算符与现有的左移运算符完全相同。
(提示:将二进制整数乘以 2 需要左移 1 并使最右边的位为零,无论整数表示是有符号还是无符号。在纸上写一些例子并自己测试。)
于 2013-03-10T03:53:44.507 回答
5
为什么 Java 不支持 <<<(无符号左移)运算符,但支持 >>>(无符号右移)运算符?
那是因为当你左移位时,最左边的位(AKA SIGNED Bit)无论如何都会丢失。
由于无符号左移运算符的作用与现有的左移运算符完全相同,因此我们没有它。
于 2013-03-10T04:16:13.760 回答
-1
我认为这是一个设计错误。<< 不是算术移位。<< 如果你这样做,应该乘以 2
0xF0FFFFFF << 4
它返回一个正数!负数乘以 2 永远不会得到正数。<< 正在做 <<< 工作。
于 2013-04-21T07:10:45.467 回答