原碼反碼補碼 與 位移運算總結(Java)

計算機系統中,數值一律用補碼來表示和存儲。原因在於,使用補碼,可以將符號位和數值域統一處理;同時,加法和減法也可以統一處理

以下代碼基於java

java 中數字做位運算時,都會補全32位(Short也是),如果強轉爲Long類型則會用64位。

以下以-4,4爲例 ,長度以32位爲準。

關於:原碼,反碼,補碼(有符號位)

java 輸出-4或4的補碼。

正數

4的原碼=0(28個0)100

正數的 原碼=反碼=補碼

負數 

注意:轉換過程中:最高位符號位始終位置不變值也不變。

反碼=(其他位取反,即1變0,0變1)

反碼=(補碼-1)

原碼=反碼除最高位符號位 全部取反。

補碼=反碼+1;

 

ym=-4原碼= 1(中間28個0)100

fm=-4 反碼=1(中間28個1)011

bm=-4補碼=fm+1=1(中間28個1)100

移位運算

 

有符號右移 >>

負數 位運算過程:原碼-》反碼-》補碼-》移位-》反

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章