例如:1-1 = 1+(-1)= 0000001(原碼)+10000001(原碼)= 000000000。= 111111(補碼)=1000000(原碼)= -0。
使用逆代碼運算時,結果為-0。雖然+0和-0都是0,但看起來總是怪怪的。而且帶符號的0沒有任何意義,有兩個二進制數00000000和1000000。
嚴格的程序員怎麽能接受這個?為了消除歧義,反碼出現了。
擴展數據
補碼的編碼方案是解決負數在機器中如何表示,其本質意義是用壹個正數來表示這個正數對應的負數。所謂-20的補碼是指-20在機器中如何以補碼的形式表示。
具體過程如下:把20的二進制形式直接寫成00010100,然後把所有位反過來變成110111,再加上1變成65438。最簡單的補碼轉換方式,轉換過程中不用關註符號位,只需要關註轉換前後的符號位即可。
定員的大前提是機器數量。別忘了機器數量的象征意義。正數最高位是0,負數最高位是1,最高位是指機器字長最左邊的位。字節數是100B,最高位是00000100中最左邊的0。
百度百科-補充