Java:带符号右移和无符号右移
生活随笔
收集整理的這篇文章主要介紹了
Java:带符号右移和无符号右移
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
>>:帶符號右移。正數右移高位補0,負數右移高位補1。比如:
-4?>> 1 結果是 -2 ? ? ??2 >> 1,結果是1。
?
>>>:無符號右移。無論是正數還是負數,高位通通補0。
-4>>>1 結果是2147483646
對于正數而言,>>和>>>沒區別。
?
在java語言中,為了保證移動位數的有效性,以使右移的位數不超過32位,采用了取余的操作,即使 a >> n 等價于 a >> (n%32).
int i = -4;System.out.println(i+" "+Integer.toBinaryString(i));i = i>>1;System.out.println(i+" "+Integer.toBinaryString(i));i = -4;System.out.println(i+" "+Integer.toBinaryString(i));i = i>>>1;System.out.println(i+" "+Integer.toBinaryString(i));i = 5;System.out.println(i+" "+Integer.toBinaryString(i));i = i>>32;System.out.println(i+" "+Integer.toBinaryString(i));?
<< 表示左移, 左移n位表示原來的值乘2的n次方,經常用來代替乘法操作。 左移運算沒有有符號和無符號左移。
總結
以上是生活随笔為你收集整理的Java:带符号右移和无符号右移的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java:不同数据类型的转换规则
- 下一篇: java: \uxxxx unicode