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