首頁 >Java >java教程 >java中>>>是什麼意思?

java中>>>是什麼意思?

青灯夜游
青灯夜游原創
2019-11-18 16:00:3114219瀏覽

java中>>>是什麼意思?

java中是什麼意思?

是java中的移位運算符,表示無符號右移。

移位運算子麵向的運算物件也是二進位的「位元」。可單獨用它們處理整數類型(主類型的一種)。

「有符號」左移位運算子(8777a48666907c27793cf2f1704b7101>)則將運算子左邊的運算物件向右移動運算子右邊指定的位數。 「有符號」右移位運算子使用了「符號擴展」:若值為正,則在高位插入0;若值為負,則在高位插入1。

Java 也加入了一種「無符號」右移位運算子(>>>),它使用了「零擴充」:無論正負,都在高位插入0。這一運算符是C 或C 沒有的。

若對char,byte 或short 進行移位處理,那麼在移位進行之前,它們會自動轉換成一個int。只有右邊的5 個低位才會用到。這樣可防止我們在一個int 數中移動不切實際的位數。若將一個long 值處理,最後得到的結果也是long。此時只會用到右邊的6 個低位,防止移動超過long 值裡現成的位數。

但在進行「無符號」右移位時,也可能遇到一個問題。若對byte 或short 值進行右移位運算,得到的可能不是正確的結果(Java 1.0 和Java 1.1 特別突出)。

它們會自動轉換成int 類型,並進行右移位。但「零擴展」不會發生,所以在那些情況下會得到-1 的結果。可用下面這個範例來偵測自己的實作方案:

public class URShift {
public static void main(String[] args) {
int i = -1;
i >>>= 10;
System.out.println(i);
long l = -1;
l >>>= 10;
System.out.println(l);
short s = -1;
s >>>= 10;
System.out.println(s);
byte b = -1;
b >>>= 10;
System.out.println(b);
}
}

以上是java中>>>是什麼意思?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn