數值資訊在計算機內採用二進位制編碼表示。在計算機中,數字的符號位一般用「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表示這個數字負數,這種形式的數就稱為原碼。為什麼需要二進位制補碼 在做減法時,如果兩個數時用原碼表示的,則首先需要比較兩數絕對值的大小,然後以絕對值大的乙個數作為被減數 絕對值小的乙個作...