Java中的>>和>>>的區別
阿新 • • 發佈:2022-02-13
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