負數的二進位制 原碼反碼補碼

2021-10-04 09:18:10 字數 523 閱讀 1592

"為毛   -x=!x+1  ???

其中x為一任意int型正整數,左式表示取x的相反數後的二進位制形式,右式表示先將x的二進位制按位取反後再加一得到的二進位制形式。

左右兩個二進位制相同"

假設有乙個 int 型別的數,值為5,那麼,我們知道它在計算機中表示為: 

00000000 00000000 00000000 00000101 

5轉換成二制是101,不過int型別的數占用4位元組(32位),所以前面填了一堆0。 

現在想知道,-5在計算機中如何表示? 

在計算機中,負數以原碼的補碼形式表達。 

什麼叫補碼呢?這得從原碼,反碼說起。 

原碼:乙個正數,按照絕對值大小轉換成的二進位制數;乙個負數按照絕對值大小轉換成的二進位制數,然後最高位補1,稱為原碼。 

比如 00000000 00000000 00000000 00000101 是 5的 原碼。 

10000000 00000000 00000000 00000101 是 -5的 原碼。 

反碼:正數的

二進位制的原碼 反碼 補碼

如何表示二進位制數的正負呢 通常採用的方法是在二進位制數的前面加一位符號位,符號位為0表示這個數是正數,符號位位1表示這個數字負數,這種形式的數就稱為原碼。為什麼需要二進位制補碼 在做減法時,如果兩個數時用原碼表示的,則首先需要比較兩數絕對值的大小,然後以絕對值大的乙個數作為被減數 絕對值小的乙個作...

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

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

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

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