假設機器的位長為0,正數x的最高位為0,其余位為數x的值
(8位長為例)
[+0]補= 0 000 000
負數x的補碼表示為2^n-|x|
[-0]補 = 2^n = 10000 0000 = 0000 0000
綜合[0]補=0000 0000
計算機中的符號數有三種表示方法,即原碼、反碼和補碼。三種表示方法均有符號位和數值位兩部分,符號位都是用0表示“正”,用1表示“負”,而數值位,三種表示方法各不相同。
在計算機系統中,數值壹律用補碼來表示和存儲。原因在於,使用補碼,可以將符號位和數值域統壹處理;同時,加法和減法也可以統壹處理。此外,補碼與原碼相互轉換,其運算過程是相同的,不需要額外的硬件電路。
求給定數值的補碼分以下兩種情況:
正數
正整數的補碼是其二進制表示,與原碼相同
負數
求負整數的補碼,將其對應正數二進制表示所有位取反(包括符號位,0變1,1變0)後加1 。
同壹個數字在不同的補碼表示形式中是不同的。比如-15的補碼,在8位二進制中是11110001,然而在16位二進制補碼表示中,就是1111111111110001。以下都使用8位2進制來表示。