原碼,反碼,補碼和移碼

2021-08-04 21:24:03 字數 1208 閱讀 8329

注意:正數的原、反、補碼都一樣。

0的原碼跟反碼都有兩個,因為這裡0被分為+0和-0。

如果機器字長為n,那麼乙個數的原碼就是乙個n位的二進位制數有符號數,其中最高位為符號位:正數為0,負數為1。剩下的n-1位為數值位,表示真值的絕對值。凡不足n-1位的,小數在最低位右邊加零;整數則在最高位左邊加零來補足n-1位。

例如:x = +101011

[x]原= 0010 1011

x = -101011

[x]原= 1010 1011

在原碼的基礎上,符號位不變,其他位按位取反(就是0變1,1變0)就可以了。

例如:

x = -101011

[x]原= 1010 1011

[x]反= 1101 0100

在反碼的基礎上,按照正常的加法運算加1

例如:

x = -101011

[x]原= 1010 1011

[x]反= 1101 0100

[x]補= 1101 0101

也可以在原碼的基礎上,符號位不變,從右至左遇到第乙個1以前(包括這個)什麼都不變,以後按位取反即可。

[x]原= 1000 0110

[x]補= 1111 1010

注意:0的補碼是唯一的,如果機器字長為8,那麼[0]補=0000 0000

移碼最簡單了,不管正負數,只要將其補碼的符號位取反即可。

例如:

x = -101011

[x]原= 1010 1011

[x]反= 1101 0100

[x]補= 1101 0101

[x]移= 0101 0101

[+0]原= 00000000

[+0]反=00000000

[+0]補=00000000

[-0]原=10000000

[-0]反=11111111

[-0]補=00000000

0的原補碼和移碼相同

[+1]原= 00000001

[+1]反=00000001

[+1]補=00000001

[+1]移=10000001

[-1]原=10000001

[-1]反=11111110

[-1]補=11111111

[-1]移=01111111

原碼 反碼 補碼和移碼

原碼 如果機器字長為n,那麼乙個數的原碼就是用乙個n位的二進位制數,其中最高位為符號位 正數為0,負數為1。剩下的n 1位表示概數的絕對值。例如 x 101011 x 原 00101011 x 101011 x 原 10101011 位數不夠的用0補全。ps 正數的原 反 補碼都一樣 0的原碼跟反碼...

原碼 反碼 補碼和移碼

數值型資料的表示方法 1.1 進製計數制 數制的基與權 在任一數制中,每乙個數上允許使用的計數符號的個數被稱作該數制的基數。每一位都對應乙個表示該位在數碼中的位置的值,這個值就被稱為數字的權值w。常用的幾種進製 1 2進製 0,1 2 8進製 0,1,2,3,4,5,6,7 3 17進製 0,1,2...

原碼 反碼 補碼和移碼

各種數值在計算機中表示的形式為機器數,其特點是採用二進位制計數制,數的符號用0或1表示,小數點則隱含,表示不佔位置,這就是機器數的原碼。為了便於運算,帶符號的機器數可採用原碼 反碼 補碼和移碼等不同的編碼方法,機器數的這些編碼方法稱為碼制。在這種表示方法中,最高為是符號位,0表示正號,1表示負號。原...