Java 中>>和>>>的區別

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。

左移沒有<<<運算符!

相關文章
相關標籤/搜索