二進位制補碼為什麼是原碼取反加一

2021-10-04 07:44:20 字數 1477 閱讀 4404

二.反碼和補碼的形式

三.補碼為什麼是原碼取反加一

四.總結

在二進位制數中,每一位僅有01兩個可能的數碼。所以計數基數為2。低位和相鄰高位間的進製關係是「逢二進一」。

為了表示數的在二進位制數的前面增加一位符號位。符號位為0表示這個數為正數,符號位為1表示這個數為負數。這種形式的數稱為原碼。

正數反碼是其本身,負數反碼是將其原碼除符號位,其餘各位取反(0變1,1變0)。

正數補碼是其本身,負數補碼是在其反碼最後一位加1

當我們使用二進位制原碼進行相反數的加法運算如:1+(-1)時

得到的結果為-2。顯然這個結果是錯誤的。為了解決這個問題出現了補碼。

我們知道當乙個二進位制數的位寬確定後那麼它所能表示的數也就具有了範圍。基於這個原理為了實現相反數相加結果為0,我們可以使相反數相加的結果溢位從而成為0。

如上圖,假設還是1+(-1)= 0,二進位制數字寬為4位。通過計算可以得出-1應表示為1111。我們將1111稱為4位二進位制數-1的補碼。

其中10000等於24。通過分析可以得出負數n的補碼為2n-|n|。

乙個數與其取反相加即可得到該數對應位寬的最大二進位制數。

觀察發現乙個負數的反碼就等於它的原碼除符號位,其餘各位取反+1。

同時為了在補碼的計算過程中不出現加法計算所以將乙個負數的原碼除符號位,其餘各位取反得到的數稱為它的反碼。

當我們初次讀到「二進位制補碼等於原碼取反加一。」這句話時我們會下意識的產生一種反碼產生於補碼前的錯覺。但是事實上在數制的發展思路中補碼應該先於反碼出現,甚至於我們可以理解為,為了補碼在計算機中的計算方便所以產生了反碼。

1.理解思路應該是補碼先於反碼。

2.反碼加一產生補碼只是一種數字組合中的巧合,其本身並不重要,關鍵要理解補碼的原理。

3.反碼變補碼的+1是指在最後一位加一,不是加到個位。

二進位制原碼和補碼

當原碼為正數的時候,正數的原碼反碼補碼都相同,即00011的反碼也為00011,補碼也為00011.當原碼為負數的時候 反碼即按位取反 補碼為反碼加一,10011可表示 3,那麼符號位不變,其餘位按位取反即反碼11100.補碼便是11101.現代計算機多數以二進位制補碼的形式來存放整數。簡單的說,乙...

二進位制原碼 反碼 補碼詳解

原碼 原碼是指將最高位作為符號位 0表示正,1表示負 其它數字位代表數值本身的絕對值的數字表示方式。例如 數字6 在計算機中原碼表示為 0 000 0110 其中,第乙個數字0是符號位,0表示正數,0 000110是數字6的二進位制資料表示。數字 6 在計算機中原碼表示為 1 000 0110 以上...

二進位制 真值 原碼 反碼 補碼

機器數 乙個數在計算機中二進位制的表示形式叫機器數,機器數是帶符號的 計算機使用最高位來表示符號位 負數為1 正數為0.假如計算機的字長為8位 那麼對於十進位制3的機器數表示為0000 0011 而對於 3的機器數表示為1000 0011。真值 由於機器數是帶符號的所以機器數的形式值就不等於實際的值...