什么">>>"运算符在Java中

时间:2017-07-15 17:09:47

标签: java

我最近进行了能力倾向考试并遇到了这段代码:

public class MainClass{
    public static void main(String[] argv){
        int x = 0x80000000; 
        x = x >>> 31;
        System.out.println(x);
    }
}

起初我认为它必定是某种错误,但这会产生1的有效输出。使用x >> 31,输出为-1,这是可以理解的,但额外的>会做什么?

2 个答案:

答案 0 :(得分:1)

它被称为unsigned shift right,这意味着它总是填充零,无论原始int的符号如何。

答案 1 :(得分:1)

看看这里:https://www.javatpoint.com/operators-in-java。 >>>运算符与>>相同但有一个例外,它以不同的方式处理有符号整数。