java 與 移位運算子

2021-09-18 08:16:45 字數 940 閱讀 3495

區別

符號說明

>>>

無符號右移,無論是正數還是負數,右移後都是左補0

>>

有符號右移,左邊第一位是1則補1,左邊第一位是0則補0

<<

左移,左移時皆為右補0

示例code

public static void main(string args)
輸出結果

原值為:-8

原址無符號右移1位:2147483644

原址帶符號右移1位:-4

原值二進位制為:11111111111111111111111111111000

原址無符號右移1位二進位制為:1111111111111111111111111111100

原址帶符號右移1位二進位制為:11111111111111111111111111111100

過程說明
十進位制8轉化為2進製:

0000 0000 0000 0000 0000 0000 0000 1000

十進位制-8轉化為二進位制,採用 補碼方式,即在+8的二進位制的基礎上 按位取反,末位+1:

先取反:

1111 1111 1111 1111 1111 1111 1111 0111

再加1,得到-8的二進位製碼值:

1111 1111 1111 1111 1111 1111 1111 1000

-8 無符號右移1位 ,-8 >>> 1 :

0111 1111 1111 1111 1111 1111 1111 1100

^所得值轉化為十進位制為: 2147483644

-8 帶符號右移1位,-8 >> 1 :

1111 1111 1111 1111 1111 1111 1111 1100

^所得值轉化為十進位制位: -4

JAVA移位運算子

移位運算子就是在二進位制的基礎上對數字進行平移。按照平移的方向和填充數字的規則分為三種 左移 帶符號右移 和 無符號右移 在移位運算時,byte short和char型別移位後的結果會變成int型別,對於byte short char和int進行移位時,規定實際移動的次數是移動次數和32的餘數,也就...

JAVA移位運算子

移位運算子就是在二進位制的基礎上對數字進行平移。按照平移的方向和填充數字的規則分為三種 左移 帶符號右移 和 無符號右移 在移位運算時,byte short和char型別移位後的結果會變成int型別,對於byte short char和int進行移位時,規定實際移動的次數是移動次數和32的餘數,也就...

JAVA移位運算子

移位運算子就是在二進位制的基礎上對數字進行平移。按照平移的方向和填充數字的規則分為三種 左移 帶符號右移 和 無符號右移 在移位運算時,byte short和char型別移位後的結果會變成int型別,對於byte short char和int進行移位時,規定實際移動的次數是移動次數和32的餘數,也就...