>>:帶符號右移。正數右移高位補0,負數右移高位補1。 例如:
4 >> 1,結果是2;-4 >> 1,結果是-2。 -2 >> 1,結果是-1。
>>>:無符號右移。無論是正數還是負數,高位通通補0。 (建議學習:java課程)
對於正數而言,>>和>>>沒差別。
對於負數而言,-2 >>> 1,結果是2147483647(Integer.MAX_VALUE),-1 >>> 1,結果是2147483647(Integer.MAX_VALUE )。
以下程式碼可以判斷兩個數的符號是否相等
return ((a >> 31) ^ (b >> 31)) == 0;
例如:
-12 >> 3 即帶符號右移3位,結果是:1111 1111 1111 1111 1111 1111 1111 1110,十進位為: -2;
#12 >零,為:0001 1111 1111 1111 1111 1111 1111 1110,十進位為:536870910。以上是java>>>和>>區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!