1. 程式人生 > 其它 >Java中的>>和>>>的區別

Java中的>>和>>>的區別

Java中 >> 和 >>> 的區別

  • ">>" 是帶符號右移

  • ">>>" 是無符號右移

舉個例子

我們對整數 4 進行操作

4轉換為二進位制是 0000 0000 ... 0000 0100 (整數型別有32位的長度,這裡為了方便起見省略中間重複的0)

進行">>"操作後 0000 0000 ... 0000 0010 結果為2

進行">>>"操作後 0000 0000 ... 0000 0010 結果為2

兩個操作結果一致

然後對-4進行操作

-4轉換為二進位制為 1111 1111 ... 1111 1100 (同樣省略重複的1)

進行">>"操作後 1111 1111 ... 1111 1110 結果為-2

進行">>>"操作後 0111 1111 ... 1111 1110 結果為2147483646

可以看到">>"操作與一般的想法一致,等同於/2操作

下面是程式碼和結果

System.out.println("4>>1: "+(4>>1));
System.out.println("-4>>>1: "+(-4>>1));
System.out.println("4>>>1: "+(4>>>1));
System.out.println("-4>>>1: "+(-4>>>1));

總結一句話:">>"右移時,在二進位制最左邊補符號位的值,正數補0,負數補1,">>>"右移時在最左邊補0。

都是一些學習或者刷題時遇到的問題,如有錯誤,歡迎指正,來自部落格園,作者:若塵丶5251,轉載請註明原文連結:https://www.cnblogs.com/dustlike/p/15890326.html