Java中移位操作符有三個:<<、>>、>>>,分別叫做左移位操作符、有符號右移位操作符、無符號右移操作符。
左位移操作符(<<):無論是有符號數還是無符號數,都低位補0。
有符號右移位操作符(>>):用符號擴展,爲正高位補0,爲負高位補1。
無符號右移操作符(>>>):無論是有符號數還是無符號數,都高位補0,稱爲零擴展。
注意
移位預處理
char、byte、shor類型進行移位操作時,先會自動轉換爲int類型再移位。由於int類型只有32位,所以,-1<<32 == -1
對int型移位,移位數只有低5位有效。同理,long類型移位時,移位數只有低6位有效。