原碼,反碼,補碼,移碼的關係

2021-08-17 19:46:05 字數 2053 閱讀 3127

計算機組成原理 先占個大坑

資料格式分為:

一.定點格式,即約定機器中所有的資料的小數點的位置是固定不變的.

二.浮點格式,即小數點位置可變,表示範圍較大

一.定點數:

用乙個 n+

1 位字來表示乙個定點數

x ,其中一位 xn

表示符號位,其餘位數表示量值.

當資料為純小數時,小數點即在 xn

和 xn

−1之間的位置

當資料為純整數是,小數點即在最末尾 x0

後 用數值 0 和 1 分別代表正號和負號

顯然表示範圍為 0≤

|x|≤

1−2−

n 右端點為各位均為 1 情況

二.浮點數:

浮點表示法:

任意乙個二進位制數n=

2e.m

其中 m 稱為浮點數的尾數,是乙個純小數, e 是比例因子的指數,稱為浮點數的指數,是乙個整數, 2 稱為基數

如上圖所述,另外有ieee754標準

規格化表示

由於乙個數字可能有多個浮點數表示方法,所以需要有規格化表示:

即: 當尾數的值不為 0 時,尾數域的最高位應為 1

否則修改階碼同時左右移動小數點

數的機器碼表示

介紹編碼的幾種表示方法:

原碼,補碼,反碼,移碼

同時真值機器碼相對應

下面 x

均為真值

①原碼定點整數的原碼表示法:xn

xn−1

...x

1x0x

n 符號位:0 代表正數, 1 代表負數 [x

]原={

x,2n

>x≥

02n−

x=2n

+|x|

,0≥x

≥−2n

易得有+0 和-0兩種表示方法 [+

0]原=

0000...0 [

−0]原

=1111...1

但原碼的加法運算複雜,不易於使用

②反碼包括符號位全部取反

很簡單的先鴿了

③補碼補碼表示法解決了原碼的加法運算的不足

補碼的思路可以借鑑鐘錶,取模運算

-3=+9(mod12)

因此很好理解 [x

]補={

x,2n

>x≥

02n+

1+x=

2n+1

−|x|

,0≥x

≥−2n

2n+1 相當於mod

補碼→真值 x=

−2nx

n+∑i

=0n−

12ix

i 式子中x

n 取負是因為 0 代表正, 1 代表負

0只有一種表示方法,即為均為 0

轉化方法:

乙個正整數,其原碼,反碼,補碼表示法均相同,符號位為0

乙個負整數,其符號位均為1,用二進位制表示的數字值各不相同:

①原碼符號位為1 不變,整數的每一位二進位制數字求反得到反碼

②反碼符號位為1 不變,反碼數值位最低位+1,得到補碼

即 ①除符號位外各位取反

②+1④移碼

移碼通常用於表示浮點數的階碼,如ieee754

移碼的傳統定義是: [e

]移=2

k+e,

2k>e≥

−2k

其中,e為真值,2^k是固定偏移值常數.

表示方法:

e =-10101 [e

]移=0,01011

逗號不是小數點,而是區分出符號位.與原碼,補碼,反碼不同,符號位0代表負數,1代表正數

數值位與上述幾種相同

原碼,補碼,反碼,移碼

為什麼有這些碼 定義機器字長為n,若數值x是純整數 若數值x是純小數,對純小數的原碼計算是先將其轉換為二進位制 必須的 例 若機器字長為8,則 1 原 0 0000001 1 原 1 0000001 7 原 0 0000111 127 0 1111111 127 原 1 1111111 7 原 1 ...

原碼,反碼,補碼,移碼

移碼 又叫增碼 是符號位取反的補碼,先將符號位取反,再取補碼,意思就是正數只將 變為1,負數將 變為0,再取補 x 1011 x 移 11011 符號位 1 表示正號 x 1011 x 移 00101 符號位 0 表示負號 一般用做浮點數的階碼,引入的目的是為了保證浮點數的機器零為全0。一 原碼 求...

原碼 反碼 補碼 移碼

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