計算機里面,只有加法器,沒有減法器,減法,必須用加法來完成。對于 100 以內的十進制數,《減1》,就可以用《加99》代替。比如 25 - 1 = 24,可以寫成 25 + 99 = (1)24。限定了兩位數,-1 和 +99是等效的。同樣,-2,可以用 +98 代替。……它們之間,稱為《補數》。100 稱為《模》。
對于 8 位二進制數:0000 0000~1111 1111(255),模為256。-1,可以用 255(11111111)代替。-2,可以用 254(11111110)代替。……這些二進制數,就稱為負數的《補碼》。已知一個負數,求其補碼,用模計算一下,大家都能算出來。
正數的補碼與原碼相同,負數的補碼需要轉換為下面:保留最高位符號位,
原碼-->補碼:取反加1
補碼-->原碼:減1取反
(1)正數的補碼:與原碼相同。 例如,+9的補碼是00001001。(2)負數的補碼:符號位為1,其余位為該數絕對值的原碼按位取反;然后整個數加1。例如,-7的補碼:因為是負數,則符號位為“1”,整個為10000111;其余7位為-7的絕對值+7的原碼0000111按位取反為1111000;再加1,所以-7的補碼是11111001。
|