計算機運算器只有加法計算器沒有減法計算器,因此減法運算要用負數相加代替。
最簡單的例子:1-1=0,可以表示為1+(-1)=0,用8位二進制數表示1、-1的話,分別為0000 0001、1000 0001
最高位0、1分別表示正負,如果直接用0000 0001和1000 0001相加的話得到的結果并不為0,而我們知道兩個相反數的和為0,這時候就需要計算機把這兩個有符號的二進制數分別轉換成各自的補碼進行相加才能得到正確的結果0。
負數的補碼等于其符號位不變,其余各位取反(即反碼)再加1,如1000 0001→1111 1110→1111 1111
正數的補碼和反碼等于其原碼,如:0000 0001→0000 0001
這時候1111 1111+0000 0001=0000 0000(忽略掉符號位的進位)得到正確的結果0.