根源在於“計數系統的周期性”。
用十進制來說明,比較容易理解。
兩位十進制數(0~99),計數周期就是 10^2 = 100。
此時有: 24 - 1 = 23
24 + 99 = (壹百) 23
如果妳舍棄進位,只保留兩位:
+99 與-1,就是等效的。
加法,就可以代替減法。
同理,+98 也可以代替-2。
。。。
這些正數,就稱可為“負數的補數”。
計算公式:補數 = 負數 + 周期。
零和正數,就不需要變換了。
-----------------
上述公式,也可以用到計算機中。
壹個字節,有 8 位 2 進制,計數範圍是:
0000 0000~1111 1111 (十進制 255)。
計數周期是:2^8 = 256。
-1 的補碼,就是:255 = 1111 1111。
-2 的補碼,就是:254 = 1111 1110。
。。。
-128,就是:128 = 1000 0000。
零和正數,都不許轉換,必須直接參加運算。
所以,根本就沒有“正數補碼”的概念。
有人基本概念不清,就會說:正數的補碼是其本身!
根本就不存在的事,他們說的,就像真事壹樣。
--------------
用補碼計算:4-1 = 3。
列豎式計算如下:
4:0000 0100
[-1]補: 1111 1111
--相加-----------
(1)0000 0011 :+3
舍棄了進位,這次運算,就是正確的。