計算機組成原理和結構圖式(第二章)
一、數值型數據表示
1)進位計數制spa
(1)十進制—>二對象
(2)二進制—>按權相加原理
2)數符表示:無符號數、有符號數(真值、機器數)擴展
3)定點表示法:小數點位置固定不變,自己不佔存儲位二進制
(1)整數:精度爲固定的1方法
(2)小數:精度爲固定的2^-7—x.xxxxxx數據
4)浮點表示法 階碼(首位階符Ef)|尾數(首位數符Mf)計算機
- 真值N=±R^E×M
- 階碼E,定點整數,補碼/移碼錶示,表明數的範圍
- 尾數M,定點小數,原碼/補碼錶示,表明數的精度
- Mf整數位即符號位
- 尾數規格化
- 原碼:1/2≤|M|<1
- 補碼:1/2≤M<1,-1≤M≤-1/2
- 負數補碼錶示僅有1.1000……或1.0xxx……
- 精度和範圍
- 移碼(增碼):|x|移=2^n+x(n是整數位數,x是真值)
- 意義:將真值x在數週正向平移2^n
- 移碼大於0
- 移碼和補碼比較:最高位(符號位)相反
- IEEE754標準浮點格式
- 1)偏置值定義不一樣,減去1
- 2)數值第一位有效值不保存,eg:0.1011->1.011->.011
- eg:1010010.01->(1).01001001×2^6
- 符號位(一位)+階碼移碼(因是移碼無正負)+尾數原碼(符號位已前移)
- 短實數:移碼偏置值2^7-1=127,1+8+23=32
二、字符型數據表示:ASCⅡ碼是16進制
128中經常使用字符,7位字符
空格-32,0-48,A-65,a-97計算機組成
三、運算方法1:定點加減法
PS:機器碼運算:符號位參與運算,補碼舍進位,反碼加進位
1)補碼:
- (X+Y)補=X補+Y補,(X-Y)補=X補(-Y)補
- Y補->(-Y)補:包括符號位變反加一
2)溢出判斷-邏輯,SA,SB表示數符、Cf表示符號位產生進位,C表示最高有效數值位產生進位
(1)SA,SB,Sf
溢出=SA SB Sf+SA SB Sf
(2)Cf,C
正溢:Cf=0,C=1
負溢:Cf=1,C=0
不溢:Cf=C
(3)雙符號位:擴展爲雙符號位,1->11,0->00
正溢:01
負溢:10
不溢:00/11
(3)移位(移除後)對尾數覺得(原碼/補碼)
正數補碼:數符不變,空位補0
負數補碼:數符不變,左移空位補0,右移空位補1
雙符號位中第一位符號位不變,第二符號位與數符當作一個總體
(4)舍入方法
0舍1入
末位恆置1
四、運算方法2:定點乘法:將乘法轉換爲加法——部分積累加、移位
移位
- 邏輯左移=算數左移=×2(含進位位)
- 邏輯右移≠算數右移(最高位複製補位)=÷2
原碼一位乘法
- 分步乘法:每次講一位乘數所對應的部分積與原部分積的累加的和相加,並右移(算數右移)
- 符號位單獨參加運算,數據位取絕對值參加運算
- 例一:已知X=0.110,Y=-0.101
- [X]原=0.110,[Y]原=1.101
- 部分積 【乘數】/判斷位
- 00.000 Y0.101
- + 00.110
- = 00.110
- ->00.011 0Y0.10
- + 00.000
- = 00.011
- ->00.001 10Y0.1
- + 00.110
- ->00.011 110Y0
- X×Y=(0異或1).011110=1.011110
補碼一位乘法
- [X]補=X0X1……Xn,[Y]補=Y0Y1……Yn
- [X · Y]補=[X]補×Σ(Yi+1 - Yi)2^(-i)
- 運算規則:
- (1)若Yn+1=Yn,部分積+0,部分積算術右移一位
- (2)若YnYn+1=01,部分積+[X]補,部分積算術右移一位
- (3)若YnYn+1=10,部分積+[-X]補,部分積算術右移一位
- 重複進行n+1步,但最後一步不移位
- 包括一位符號位,所得乘積2n+1位,n爲數據位位數
- 特殊問題處理
- (1)i=n時,Yn+1=0
- (2)Yn+1寄存器位於乘數寄存器Y後增長一位
- (3)算數右移的對象:部分積和乘數寄存器均右移
- 例一 :已知X=+1101,Y=+1011
- [X]補=01101,[Y]補=01011,[-X]補=10011
- (雙符號位)部分積 乘數
- 000000 [010110](Yn和Yn+1)
- + 110011
- = 110011
- ->111001 1[01011]
- + 000000
- = 111001 11[0101]
- + 001101
- = 001001
- ->000100 111[010]
- + 110011
- = 110111
- ->111011 1111[01]
- + 001101
- = 001000
- [X-Y]補=010001111
五、運算方法3:定點除法
手工乘除法和計算機乘除法移位的對象和方向不一樣
原碼乘除法,尾數取絕對值,符號位單獨運算
1.原碼恢復餘數除法
- 1)判斷是否夠減(試商)
- 2)餘數爲正數時,夠減,商上1,餘數左移一位
- 3)餘數爲負數時,不夠減,商上0
- 運算獲得的一位商先放於商左側的一位上商位,而後隨尾數左移
- 不足:步數不肯定
2.原碼加/減交替出發運算方法(不恢復餘數法)
六、運算方法4:浮點數加減法
(1)檢測可否簡化操做
(2)對階(將大階碼提出)小階向大階對齊
(3)尾數加減
(4)結果規格化
- 惟二規格化形式:00.1……或11.0……
- 規格化00.0……或11.1……:尾數左移,階碼減一,直到達到要求
- 規格化0.1……或1.0……:一次右移,階碼加一
七、運算方法5:浮點數乘法
八、運算方法6:浮點數除法