1. 程式人生 > >java移位操作符詳解

java移位操作符詳解

左移位操作符 <<

按照操作符右側指定的位數將操作符左邊的運算元向左移動,低位補0

int i = -1;
System.out.println(Integer.toBinaryString(i));

執行結果

為什麼轉二進位制後會是32個1呢?

在java記憶體中,一個int型別的變數,佔用的空間32位,取值範圍為 231 2311 ,在記憶體中儲存的時候,將其轉換為補碼進行儲存,這樣做的有點就在於,符號位和數值為可以一起處理,減法可以通過加法實現,簡化了計算機的結構設計,提高了運算速度。

  • 將-1向左移動1位
System.out.println(Integer.toBinaryString(i<<1));

右移位操作符 >>和>>>

* 按照操作符右側指定的位數,將操作符左邊的運算元向右移動*

右移位操作符分為有符號無符號

  • >> 為有符號操作符

  • >>> 為無符號操作符

有符號操作符和無符號操作符的區別為
有符號時,符號為正,高位補0;符號為負,高位補1
無符號時,無論符號為正負,高位都補0

移位操作符與等號的組合使用

操作符左邊的值會移動由右邊的值指定的位數,再將得到的結果賦值給左邊的變數