天天看點

java移位運算符(>>> >> <<)總結

java 有三種移位運算符操作 分别是 >>(有符号右移) ,>>>(無符号右移) 和<<(左移) ,下面分别對這三種操作需要注意的地方做個簡單的說明:

1、>> :

num>>1 的意思是符号位不變,丢棄最低位 左邊補符号位

舉例: 2>>1 等于1 ,  -2>>1等于-1

2、 >>>

num>>>1的意思是丢棄最低位高位補0

舉例:2>>>1 等于1  ,-2147483648(int類型的最大值,最高位符号位為1)>>>1 等于1073741824 

注意:在用>>>右移是一定注意負數的情況

3、<<

num<<1 的意思丢棄最高位 低位補0

舉例 :1<<1 的意思是将num的二進制代碼整體向左移動一位(即等于乘2操作)。-1<<1 等于-2

注意:如果移動的位數超過了該類型的最大位數,編譯器會對其進行取模操作 例 1<<33 等于1<<1

   如果移進符号位 則會引起符号位變化 例 1<<31等于 -2147483648

繼續閱讀