Java>>>操作者

时间:2012-08-29 10:51:58

标签: java

  

可能重复:
  Difference between >>> and >>

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

3 个答案:

答案 0 :(得分:4)

来自Java tutorial

  

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

答案 1 :(得分: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

答案 2 :(得分:0)

签名的右移操作符“&gt;&gt;”将位模式向右移位。无符号右移运算符“&gt;&gt;&gt;”将零移到最左边的位置,

更多信息

Follow this link