0

可能重复:
>>>和>>之间的区别

有人可以解释一下>>>运算符在 Java 中的作用。我在这个问题中遇到了它,HashMap 中的 Hash 方法>>>从它在问题中的用法来看,它似乎是一个移位运算符 -和之间有什么区别>>

4

3 回答 3

4

来自Java教程

无符号右移运算符“>>>”将零移到最左边的位置,而“>>”之后的最左边的位置取决于符号扩展。

于 2012-08-29T10:53:58.147 回答
2

您可以通过一个简单的程序看到不同之处:

public static void main(String[] args) throws InterruptedException, IOException {
    int i = -1;
    int j = i >> 1;
    int k = i >>> 1;
    System.out.println("i = " + i + "\t\t<=> " + Integer.toBinaryString(i));
    System.out.println("j = " + j + "\t\t<=> " + Integer.toBinaryString(j));
    System.out.println("k = " + k + "\t<=> " + Integer.toBinaryString(k));
}

输出:

i = -1          <=> 11111111111111111111111111111111  
j = -1          <=> 11111111111111111111111111111111  
k = 2147483647  <=> 1111111111111111111111111111111
于 2012-08-29T10:57:23.747 回答
0

有符号右移运算符“>>”将位模式向右移动。无符号右移运算符“>>>”将零移到最左边的位置,

更多信息

按照这个链接

于 2012-08-29T10:57:45.587 回答