我是java初学者...我已经尝试了很多,但找不到以下行的方法
System.out.println (-1>>>1);
给出2147483647?
有人可以帮助我吗?
最佳答案
这是因为binary representation -1
的值为 11111111111111111111111111111111
。当您对其执行无符号右移位操作 (>>>
) 时,它会将参数的所有位向右移动(在本例中为 1
)并填充左侧的空格带有零,因此您会得到 01111111111111111111111111111111
,它是 Integer.MAX_VALUE = 2147483647
的二进制表示形式(不确定您从哪里获得 2147483648)。
关于java - java中的逻辑右移运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26467312/