为什么Java不支持<<< oprerator

为什么Java不支持<<< (无符号左移)运算符,但是支持>>> (无符号右移)运算符?

Java添加运算符“>>>”来执行逻辑右移,但由于逻辑和算术左移操作相同 ,因此Java中没有“<<<”运算符。

来自Java的Shifts …

为什么Java不支持<<< (无符号左移)运算符,但是支持>>> (无符号右移)运算符?

因为(假设的)无符号左移运算符与现有的左移运算符完全相同。

(提示:将二进制整数乘以2需要左移1并使最右边的位为零,无论整数表示是有符号还是无符号。在一张纸上写一些例子并自己测试。)

为什么Java不支持<<<(无符号左移)运算符,但是支持>>>(无符号右移)运算符?

那是因为当你离开位时,最左边的位(AKA SIGNED位)无论如何都会丢失。

由于无符号左移运算符与现有的左移运算符完全相同,我们没有它。

我认为这是一个设计错误。 <<不是算术转换。 如果你这样做,则假设乘以2

0xF0FFFFFF << 4

它返回正数! 负数乘以2应该永远不会得到正数。 <<正在做<<<工作。