Java中的位運算符:二進制
>>表示右移,若是該數爲正,則高位補0,若爲負數,則高位補1;移動
>>>表示無符號右移,也叫邏輯右移,即若該數爲正,則高位補0,而若該數爲負數,則右移後高位一樣補0。位運算
表達式爲:運算符
result = exp1 >> exp2;
result = exp2 >>> exp2;
表示把數exp1向右移動exp2位。
例如:
res = 20 >> 2;
20的二進制爲 0001 0100,右移2位後爲 0000 0101,則結果就爲 res = 5;
res = -20 >> 2;
-20的二進制爲其正數的補碼加1,即 1110 1011,右移2位後爲 1111 1100,結果爲 res = -6;
而對於>>>符號而言:
res = 20 >>> 2; 的結果與 >> 相同;
res = -20 >> 2;
-20的二進制爲 1110 1011,右移2位,此時高位補0,即 0011 1010,結果爲 res = 58;
補充:
<< 是與>>對應的左移運算符,表示將exp1向左移動exp2位,在低位補0。其實,向左移動n位,就至關於乘以2^n。
左移沒有<<<運算符!