java中的位移运算符_java中的移位运算符(, , )
java中有3種移位運算符
<
>>? :? 右移運算符,不改變符號位,num >> n 表示二進制右移n位,結(jié)果相當(dāng)于 num /?(2的n次方)
>>> : 無符號右移,長度擴展為4字節(jié),最高位都為0,但正數(shù)擴展位補0,負(fù)數(shù)擴展位補1。若無擴展,空位補0
舉幾個例子加深理解,為了方便演示,以byte類型為例:
<
-3的二進制表示為10000011,左移一位后不改變符號位(最高位),移位后為10000110,結(jié)果為 -3 * (2的1次方)? =? -6
>>? : -3 >> 1
同上,右移一位后不改變符號位(最高位),移位后為10000001,結(jié)果為 -3 / (2的1次方)? =? -1
>>> : -3 >>> 1
長度擴展為4字節(jié)(32位),最高位為0,負(fù)數(shù)擴展位補1,移位后為01111111111111111111111111111110,結(jié)果為 2147483646(Integer.MAX_VALUE - 1)
3 >>> 1
同上,區(qū)別在于正數(shù)擴展位補0,移位后為00000000000000000000000000000001,結(jié)果為 1
若無擴展(int類型),空位補上0
-733183670>>>8
總結(jié)
以上是生活随笔為你收集整理的java中的位移运算符_java中的移位运算符(, , )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 如何发提示_消息提醒-如何实现
- 下一篇: 基础知识很扎实 - 但是面试就是做不出来