計算機組成原理 先占個大坑
資料格式分為:
一.定點格式,即約定機器中所有的資料的小數點的位置是固定不變的.
二.浮點格式,即小數點位置可變,表示範圍較大
一.定點數:
用乙個 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的原碼跟反碼都有兩...