原碼反碼與補碼(二進位制數的編碼表示)

2021-10-25 10:00:44 字數 1615 閱讀 6187

數值資訊在計算機內採用二進位制編碼表示。在計算機中,數字的符號位一般用「0」表示正號,「1」表示負號,符號位放在數的最高位。

例如:8位二進位制數:+1011011和-1011011在機器中分別表示為:01011011和11011011.

將符號位數位化為0或1,可參照上述例子。

對於乙個帶符號的純小數,它的原碼就是把小數點左邊一位作用符號位。例如:

x=0.1011,其對應的原碼為:[x]

原[x]_原

[x]原

​=0.1011

x=-0.1011,其對應的原碼為:[x]

原[x]_原

[x]原

​=1.1011

採用原碼表示法時,編碼簡單直觀,但存在下述問題:

1.零的表示不唯一。

2.用原碼進行四則運算是,符號位需單獨處理。

反碼是編碼方式和求補碼的中間碼,其規則如下:

正數的反碼與原碼表示相同。

負數反碼的符號位與原碼相同,其餘各位取反,例如:

x=+1100110,[x]

原[x]_原

[x]原

​=01100110,[x]

反[x]_反

[x]反

​=01100110

x=-1100110,[x]

原[x]_原

[x]原

​=11100110,[x]

反[x]_反

[x]反

​=10011001

x=+0000000,[x]

原[x]_原

[x]原

​=00000000,[x]

反[x]_反

[x]反

​=00000000

x=-0000000,[x]

原[x]_原

[x]原

​=10000000,[x]

反[x]_反

[x]反

​=11111111

和原碼一樣,反碼中的零表示也不唯一。

對於純小數:

x=0.1011,[x]

原[x]_原

[x]原

​=0.1011,[x]

反[x]_反

[x]反

​=0.1011

x=-0.1011,[x]

原[x]_原

[x]原

​=1.1011,[x]

反[x]_反

[x]反

​=1.0100

如果有n

nn位整數,則它的模數為2

n2^n

2n;如果有n

nn位小數,小數點前一位為符號位,那麼它的模數為2。

由以上規定得知,對於乙個二進位制負數,可用其模數與真值做加法求得其補碼。例如:

x=-0110,[x]

補[x]_補

[x]補​=2

42^4

24+(-0110)=1010(可換算成十進位制進行計算再換算回二進位制)

x=-0.1011,[x]

補[x]_補

[x]補

​=2+(-0.1011)=1.0101

對於乙個負數,其補碼由該數反碼的最末位加1求得。

對於正數來說,其原碼、反碼、補碼形式相同。

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

眾所周知,二進位制是我們計算機語法的基本組成,他以0和1為基礎,構建了我們多樣神奇的資訊世界。因此說,二進位制對於我們是十分重要的。對於二進位制來說,他在計算機中有三中表示方法 原碼 反碼和補碼。這三種碼的區別,就是對於正負表示不同的區別。對於原碼來說,他對於正負的表示方法是在整個二進位制數前加0或...

二進位制數的編碼 原碼 反碼和補碼

乙個數在計算機內的表達形式稱為 機器數 而它代表的數值稱為機器數的 真值 常用編碼有原碼 反碼和補碼。將符號位數位化0或1,數的絕對值與符號一起編碼,即 符號 絕對值表示 x 0101011 x 原 00101011 x 0101011 x 原 10101011 對於帶符號的純小數,原碼表示即將小數...

二進位制的原碼 反碼 補碼

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