負數的二進位制

2021-10-24 07:18:27 字數 1705 閱讀 3351

先舉個正確的例子:

7的二進位制形式可以表示如下:

00000000

00000000

00000000

00000111

-7的二進位制形式可以表示如下:

11111111

11111111

11111111

11111001

1)左邊為高位,右邊為低位;

2)最高位為符號位,正數的符號位為0,負數的符號位為1;

3)按照我們正常的邏輯很容易想到只需要把正數7的二進位制形式的符號位換成1,-7的二進位制表示形式應該是

10000000

00000000

00000000

00000111

但它只是乙個原碼,不是最終表示形式,所以是不對的;

4)在計算機中,負數以原碼的補碼形式表達。要想正確推出負數的二進位制表示形式,需要先了解以下基本概念

原碼

乙個正數,按照其本身大小轉換成的二進位制數,稱為原碼

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

比如:

00000000

00000000

00000000

00000111

// 是7的原碼

10000000

00000000

00000000

00000111

// 是-7的原碼

反碼
正數的反碼與原碼相同

負數的反碼為對該數的原碼除符號位外各位取反

比如:

00000000

00000000

00000000

00000111

// 是7的反碼,和原碼相同

10000000

00000000

00000000

00000111

// 是-7的原碼

11111111

11111111

11111111

11111000

// 對-7的原碼取反(除符號位),即得到了-7的反碼

補碼
正數的補碼與原碼相同

負數的補碼為對該數的原碼除符號位外各位取反,然後在最後一位加1;即對負數的補碼為對該數的反碼的最後一位加1

比如:

00000000

00000000

00000000

00000111

// 是7的補碼,和原碼相同

10000000

00000000

00000000

00000111

// 是-7的原碼

11111111

11111111

11111111

11111000

// 對-7的原碼取反(除符號位),即得到了-7的反碼

11111111

11111111

11111111

11111001

// 最後一位加1,即得到-7的補碼,這也是負數在計算機中最終的表示形式

歡迎廣大網友們的吐槽,共同學習,共同進步

c 二進位制 負數 二進位制概念

我們平時認識的數字比如1 2 3 4等數字叫做十進位制數字,我們可以看懂,但是計算機無法運算,如果計算機要計算這些數字就得將這些數字轉換成計算機能讀懂的資料,計算只能讀懂二進位制數字,二進位制的數字有什麼特徵呢?二進位制就是由1和0組成的數字,那麼為什麼計算機要使用二進位制資料呢?下面作為了解。a ...

正負數二進位制

1 原碼 乙個正數的原碼,是按照絕對值大小轉換成的二進位制數 乙個負數的原碼,是按照絕對值大小轉換成的二進位制數,然後最高位補1。2 反碼 正數的反碼與原碼相同 負數的反碼為對該數的原碼除符號位外各位取反 原為1,取反為0 否則相反 3 補碼 正數的補碼與原碼相同 負數的補碼為對該數的原碼除符號位外...

負數的二進位制怎麼表示

假設有乙個 int 型別的數,值為5,那麼,我們知道它在計算機中表示為 00000000 00000000 00000000 00000101 5轉換成二制是101,不過int型別的數占用4位元組 32位 所以前面填了一堆0。現在想知道,5在計算機中如何表示?在計算機中,負數以其正值的補碼形式表達。...