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中文網其他相關文章!