注意:正數的原、反、補碼都一樣。
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表示負號。原...