2017-07-15 79 views
0

我最近給了一個資質考試和遇到的這一段代碼:什麼是「>>>」運營商做的Java

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

起初我以爲這一定是某種錯誤的,但是這給一個1的有效輸出。使用x >> 31時,輸出爲-1,這是可以理解的,但額外的>會做什麼?

回答

1

它被稱爲unsigned shift right這意味着它總是填充零,而不管原始int的符號如何。