計算機組成原理和結構圖式(第二章)

計算機組成原理和結構圖式(第二章)

一、數值型數據表示


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.原碼加/減交替出發運算方法(不恢復餘數法)

  • 3)餘數爲負數時,不夠減,商上0      
    • 將餘數左移一位,加除數(此時已完成試商)  

六、運算方法4:浮點數加減法


1)檢測可否簡化操做

(2)對階(將大階碼提出)小階向大階對齊

(3)尾數加減

(4)結果規格化

  • 惟二規格化形式:00.1……或11.0……
  • 規格化00.0……或11.1……:尾數左移,階碼減一,直到達到要求
  • 規格化0.1……或1.0……:一次右移,階碼加一

七、運算方法5:浮點數乘法


 

八、運算方法6:浮點數除法

相關文章
相關標籤/搜索