計算機中,並沒有原碼和反碼。
正負數據,在計算機中,只是以補碼存放的。
以八位二進制來說明補碼結構。
數字 0,就是以 0000 0000 存放。
數字 1,就是加上 1,得 0000 0001。
其它,繼續加,就行了。
數字 127,就是 0111 1111。
------
數字-1,就是 0 減壹,即:
0000 0000-1 =(借位 1)? 1111 1111。
只保留八位,存放形式就是 1111 1111 (十進制 255)。
數字-2,就再減壹,得:1111 1110 (= 254)。
數字-3,就再減壹,得:1111 1101 (= 253)。
其它,繼續減,即可... ...
數字-128,存放形式就是:1000 0000 (= 128)。
------
以上這些,就是補碼。
八位補碼可以表示:-128~+127。
計算公式:
負數的補碼=256+該負數
正數的補碼,就是正數本身
(如果需要二進制,妳自己再變換。)
------
用補碼代替負數,就可以把減法,轉換為加法運算。
因此,計算機只要有壹個加法器,就夠用了。
例如: 7-3 = 4。
用補碼的計算過程如下:
7 的補碼=0000 0111
-3的補碼=1111 1101--相加-------------
得: (1)?0000 0100?= 4 的補碼
舍棄進位,只保留八位作為結果,就是 4。
這就用加法,解決了負數以及減法的問題。
------
原碼和反碼,並沒有這些功能。
所以,在計算機中,並沒有原碼和反碼。
所謂的“取反加壹”,由誰算呢?
計算機,可不做這些事。