原碼 反碼 補碼和移碼

2021-08-28 14:34:22 字數 1885 閱讀 7226

數值型資料的表示方法

1.1 進製計數制

數制的基與權

在任一數制中,每乙個數上允許使用的計數符號的個數被稱作該數制的基數。

每一位都對應乙個表示該位在數碼中的位置的值,這個值就被稱為數字的權值w。

常用的幾種進製

(1)2進製:0,1

(2)8進製:0,1,2,3,4,5,6,7

(3)17進製:0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f

進製之間的轉換

(1)整數10->2(除2取餘法)

(2)小數10->2(乘2取整法)

(3)整數2->10(按權相加)

(4)小數2->10(按權相加)

(5)16進製制2進製(逐位轉換/分組轉換)

1.2帶符號數的表示

「0」表示正號,「1」表示負號

二進位制的碼制:原碼、反碼、補碼、移碼

1.原碼

乙個二進位制數,用0或1表示符號,數值位不變,就得到與該二進位制數真值對應的原碼

字長為8位的原碼

表示範圍為:-127~127

[+127]原=01111111

[-127]原=11111111

數值「0」有兩種原碼形式:

[+0]原=00000000

[-0]原=10000000

2.反碼

正數情況下(x>=0)

x反=x原

負數情況下(x<0)

符號位保持為「1」,數值為分別「按位取反」

字長為8位的反碼

表示範圍為:-127~127

[+127]反=01111111

[-127]反=10000000

數值「0」有兩種反碼形式:

[+0]反=00000000

[-0]反=10000000

3.補碼

編碼定義:[x]補=x+2^n(模2^n),n為編碼位數

規則:(1)對於正數(x>=0)

[x]補=[x]原

(2)對於負數

字元位保持為「1」,其餘各位數值「按位取反,末尾加1」

[x]補=[x]反+1

字長為8位的補碼

表示範圍為:-128~127

[+127]補=01111111

[-128]補=10000000

補碼比原碼和反碼多表示1個負值,即-128

數值「0」有1種補碼形式:

[+0]補=[-0]補=00000000

4.移(增)碼

移碼通常用於表示浮點數的階碼。

階碼一般為整數,故移碼通常只用於表示整數

對定點整數x,它的移碼是:

[x]移=2^ (n-1) +x,其中-2^ (n-1)上述規則等價於將x正向平移或者增加2^ (n-1),因此稱之為移碼或增碼

移碼表示範圍和補碼一致,0也只有1個移碼。

正數:將原碼符號位變反,即得到移碼。

負數:將原碼連同符號為一起變反,末位加1,即得到移碼(與變補等效)。

補碼和移碼:符號相反、數值位相同。

引自中國大學慕課網

原碼 反碼 補碼和移碼

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

原碼,反碼,補碼和移碼

注意 正數的原 反 補碼都一樣。0的原碼跟反碼都有兩個,因為這裡0被分為 0和 0。如果機器字長為n,那麼乙個數的原碼就是乙個n位的二進位制數有符號數,其中最高位為符號位 正數為0,負數為1。剩下的n 1位為數值位,表示真值的絕對值。凡不足n 1位的,小數在最低位右邊加零 整數則在最高位左邊加零來補...

原碼 反碼 補碼和移碼

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