在計算機中是以數值是以該數的補碼形式來表示.
正數:原碼=反碼=補碼
+12
原碼:0,1100
反碼:0,1100
補碼:0,1100
負數:反碼=除符号位原碼各位取反; 補碼=反碼+1
-12
原碼:1,1100
反碼:1,0011
補碼:1,0100
Note:逗号之前為符号位
[x]補碼 : 連同符号位在内,每位取反,末位加一,即得到[-x]補碼.
System.out.println(Integer.toBinaryString(-12));
System.out.println(Integer.toBinaryString(12));
輸出結果:
11111111111111111111111111110100
1100
-
原址:補碼轉原數值公式(非常簡單實用的公式)
左邊的x指計算機中的二進制補碼,右邊的x是實際的數值。 ↩︎