Java三種移位運算子
阿新 • • 發佈:2018-11-08
java中有三種移位運算子
1、<< : 左移運算子,value<< num,相當於value乘以2的num次方
方法:丟掉最高位移動的位數,最低移動的位數補0,若num大於value轉為二進位制後的最大位數n,則取模num%n
例如:9 <<2
9—int型別,對應的二進位制形式為:0000 0000 0000 0000 0000 0000 0000 1001;
2—代表該數字高位(左側)的兩個零移出,其他的數字都朝左平移2位,在低位(右側)的兩個空位補零。
結果是0000 0000 0000 0000 0000 0000 0010 0100,
轉換為十進位制是36=9*2^2
2、>> : 右移運算子,value>> num,相當於value除以2的num次方
方法:向右移動對應的位數,低位移出(捨棄),高位的空位補符號位,即正數補0,負數補1。
例如 14>>2
14—int型別的正數,對應的二進位制形式為:0000 0000 0000 0000 0000 0000 0000 1110
2—低位的最後兩個數字移出,因為該數字是正數,所以在高位前兩位補零。
結果是 0000 0000 0000 0000 0000 0000 0000 11
轉換為十進位制是3=14/2^2
3、>>> : 無符號右移,忽略符號位,空位都以0補齊,只是對32位和64位的值有意義