第三章 計算機的算術(shù)運算_第1頁
第三章 計算機的算術(shù)運算_第2頁
第三章 計算機的算術(shù)運算_第3頁
第三章 計算機的算術(shù)運算_第4頁
第三章 計算機的算術(shù)運算_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第三章計算機的算術(shù)運算提綱3.1引言3.2加法和減法3.3乘法3.4除法3.5浮點運算3.6并行性和計算機算術(shù):結(jié)合律3.7實例:X86的浮點3.8謬誤與陷阱3.9本章小結(jié)3.10拓展閱讀3.1引言如何表示小數(shù)?遇到無法表示的大數(shù)怎么辦?如何運算?3.2加法和減法運算方法?減法轉(zhuǎn)換為補碼的加法;溢出的概念:運算結(jié)果超出了數(shù)的表示范圍MIPS檢測到溢出時會產(chǎn)生異常,也叫中斷異常程序計數(shù)器EPC:保存導(dǎo)致異常的指令一位全加器加法運算:Ai+Bi+Ci

=Si

(Ci+1)

加數(shù) 進位輸入和進位輸出一位全加器真值表輸入輸出AiBiCiSiCi+10000000110010100110110010101011100111111邏輯方程Si=Ai⊕Bi⊕CiCi+1=AiBi+BiCi+CiAi

全加器邏輯電路Si=Ai⊕Bi⊕CiCi+1=AiBi+BiCi+CiAi

Ci+1=AiBi

·(Ci

·(Ai⊕Bi))

邏輯電路(一位全加器)FAAiBiCiSiCi+1n位的行波進位加減器[x]補

0.1001+[y]補

0.0011

0.1100FAAiBiCiSiCi+13.2.1多媒體算術(shù)運算向量計算,或單指令多數(shù)據(jù)計算飽和操作:當計算結(jié)果溢出時,結(jié)果被設(shè)置成最大的正數(shù)或最小的負數(shù)例:旋轉(zhuǎn)收音機的音量3.3乘法MIPS乘法提供一對單獨的32位寄存器來容納64位的積;乘法只是簡單的移位和加法;可以采用并行的方法提高乘法的速度同號相乘為正,異號相乘為負。設(shè)x=0.1101,y=0.1011

0.1101(x)x 0.1011(y)--------------------------------- 1101 1101 0000+1101-----------------------------------0.10001111(z)乘數(shù)為1,抄被乘數(shù)到對應(yīng)位置乘數(shù)為0,填全0到對應(yīng)位置或跳過習慣方法運算過程k=4權(quán)為2^4i,j=4,03,12,21,30,4am-1am-2.........a0=Ax)bn-1......b1b0=Bam-1b0am-2b0......a1b0a0b0am-1b1am-2b1......a1b1a0b1..................+)am-1bn-1am-2bn-1...a1bn-1a0bn-1pm+n-1pm+n-2pm+n-3......pn-1......p1p0=p并行乘法器實現(xiàn)n位×n位,需要n(n-1)個全加器和n2個“與”門3.4除法例:設(shè)被除數(shù)x=0.1001,除數(shù)y=0.1011

0.1101

商q

0.1011

0.10010

x(r0)被除數(shù)小于除數(shù),商0

-0.01011

2-1y除數(shù)右移1位,減除數(shù),商1

0.001110

r1得余數(shù)r1

-0.0

01011

2-2y除數(shù)右移1位,減除數(shù),商1

0.0000110

r2

得余數(shù)r2

-0.0

001011

2-3y除數(shù)右移1位,不減除數(shù),商0

0.00001100

r3

得余數(shù)r3

-0.0

0001011

2-4y除數(shù)右移1位,減除數(shù),商1

-0.00000001

r4得余數(shù)r4得x÷y的商q=0.1101,余數(shù)為r=0.00000001。除數(shù)右移等價于被除數(shù)左移機器運算與手算的不同在計算機中,小數(shù)點是固定的;機器不會心算,必須先作減法,若余數(shù)為正,才知道夠減;若余數(shù)為負,才知道不夠減。不夠減時必須恢復(fù)原來的余數(shù),再繼續(xù)往下運算——恢復(fù)余數(shù)法?;謴?fù)原來的余數(shù),只要當前的余數(shù)加上除數(shù)即可?;謴?fù)余數(shù),使除法進行過程的步數(shù)不固定,控制復(fù)雜。實際中常用不恢復(fù)余數(shù)法,又稱加減交替法。步數(shù)固定,控制簡單。不恢復(fù)余數(shù)(加減交替法)試商 x-y

減恢復(fù)余數(shù)

x-y+y試下一位商 2x-y=2(x-y)+y 加3.5浮點運算小數(shù)點在計算機中如何表示?3.5.1浮點數(shù)的表示方法把一個數(shù)的有效數(shù)字和數(shù)的范圍在計算機的一個存儲單元中分別予以表示;任意一個十進制數(shù)N可以寫成:N=10E.M計算機中一個任意進制數(shù)N可以寫成:N=Re.mm:尾數(shù),是一個純小數(shù);e:比例因子的指數(shù),稱為浮點的指數(shù),是一個整數(shù);R:比例因子的基數(shù)。(1)機器浮點數(shù)機器浮點數(shù)由階碼、尾數(shù)及其符號位組成:尾數(shù):用定點小數(shù)表示,給出有效數(shù)字的位數(shù),決定浮點數(shù)的表示精度;階碼:用整數(shù)形式表示,指明小數(shù)點在數(shù)據(jù)中的位置,決定浮點數(shù)的表示范圍。EsE1E2....EmMsM1M2....Mn階符階碼數(shù)符尾數(shù)(2)浮點數(shù)的標準格式IEEE(國際電氣和電子工程師協(xié)會)IEEE754標準:尾數(shù)用原碼;階碼用移碼,基為2;S---尾數(shù)符號,0正1負;M---尾數(shù),純小數(shù)表示,小數(shù)點在尾數(shù)域最前;E---階碼,采用移碼方法來表示正負指數(shù)。313023220SEM(3)浮點數(shù)的規(guī)格化表示浮點數(shù)表示:0.5;0.05101

;0.005102;為提高數(shù)據(jù)的表示精度,需做規(guī)格化處理;規(guī)格化處理:對非0值的浮點數(shù),要求尾數(shù)的絕對值必須>=1/2,即尾數(shù)域的最高有效位應(yīng)為1:0.10001;規(guī)格化處理,通過尾數(shù)移位和修改階碼實現(xiàn)。隱藏位技術(shù)非0值浮點數(shù)的尾數(shù)數(shù)值最高位必定為1;保存時把該位去掉,用同樣多的尾數(shù)位就能多存一位二進制數(shù);0.11000101.100010取回運算時,必須先恢復(fù)隱藏位。(4)規(guī)格化浮點數(shù)的真值移碼定義:[x]移

=x0x1x2···xn

=2n+x -2n

x

2nIEEE754標準,一個規(guī)格化的32位浮點數(shù)x的真值為:x=

(-1)s

(1.M)

2E-127 e=E–127IEEE754標準,一個規(guī)格化的64位浮點數(shù)x的真值為:x=(–1)s×(1.M)×2E-1023 e=E–1023E=0且M=0,浮點數(shù)x的真值為零,稱為機器零S=0,+0 S=1,-0E=11...1,M=0,浮點數(shù)x的真值為

S=0,+

S=1,-

例1若浮點數(shù)x的二進制存儲格式為(41360000)16,求32位浮點數(shù)的十進制值。0100,0001,0011,0110,0000,0000,0000,0000數(shù)符:0階碼:1000,0010尾數(shù):011,0110,0000,0000,0000,0000指數(shù)e=階碼-127=10000010-01111111=00000011=(3)10包括隱藏位1的尾數(shù):1.M=1.011011000000000

0000

0000=1.011011于是有x=(-1)s×1.M×2e=+(1.011011)×23=+1011.011=(11.375)10例2將十進制數(shù)20.59375轉(zhuǎn)換成32位浮點數(shù)的二進制格式來存儲首先分別將整數(shù)和分數(shù)部分轉(zhuǎn)換成二進制數(shù):20.59375=10100.10011然后移動小數(shù)點,使其在第1,2位之間10100.10011=1.010010011×24 e=4于是得到:S=0,E=4+127=131=1000,0011,M=010010011最后得到32位浮點數(shù)的二進制存儲格式為01000001

10100100110000000000

0000=(41A4C000)16移碼表示法n位整數(shù),假定移碼形式為x0x1x2···

xn2n+x-2n

x

2n[x]移

=移碼通常用于表示浮點數(shù)的階碼;8位移碼表示的機器數(shù)為數(shù)的真值在數(shù)軸上向右平移了128個位置。0-128+127負數(shù)正數(shù)機器數(shù)移碼的特點與原碼、補碼、反碼的符號位值正好相反;移碼的大小直觀地反映了真值的大小,有助于兩個浮點數(shù)進行階碼大小比較;真值0在移碼中的表示形式是唯一的,即:[+0]移=[-0]移=100…00同一數(shù)值的移碼和補碼除最高位相反外,其他各位相同。3.5.2浮點加法設(shè)有兩個浮點數(shù)x和y,它們分別為:x=2Ex·

Mxy=2Ey·MyEx和Ey

分別為階碼,Mx

和My為尾數(shù)。兩浮點數(shù)進行加法和減法的運算規(guī)則是:x±y=(Mx2Ex-Ey±My)2Ey Ex<=Ey完成浮點加減運算的操作過程大體分為:(1)比較階碼大小并完成對階;(2)尾數(shù)進行加或減運算;(3)結(jié)果規(guī)格化(4)溢出處理(5)舍入處理。對階使二數(shù)階碼相同(小數(shù)點位置對齊),叫對階。先求兩數(shù)階碼Ex和Ey之差,即△E=Ex-Ey若△E=0,表示

Ex=Ey若△E>0,Ex>Ey若△E<0,Ex<Ey通過尾數(shù)的移動來改變Ex或Ey,使其相等.對階原則階碼小的數(shù)向階碼大的數(shù)對齊;小階的尾數(shù)右移,每右移一位,其階碼加1。結(jié)果規(guī)格化尾數(shù)求和方法與定點加減法運算完全一樣;將求和的結(jié)果規(guī)格化.

規(guī)格化的定義:

采用原碼:正數(shù):S=0.1×××…×負數(shù):S=1.1×××…×采用雙符號位的補碼:對正數(shù):S=00.1×××…×對負數(shù):S=11.0×××…×舍入處理在對階或向右規(guī)格化時,尾數(shù)要向右移位,被右移的尾數(shù)的低位部分會被丟掉,造成一定誤差,要進行舍入處理。簡單的舍入方法有兩種:“0舍1入”法:右移時被丟掉數(shù)位的最高位為0則舍去,反之則將尾數(shù)的末位加“1”?!昂阒?”法:只要數(shù)位被移掉,就在尾數(shù)的末位恒置“1”。從概率上來說,丟掉的0和1各為1/2。溢出處理浮點數(shù)的溢出表現(xiàn)為階碼溢出;階碼上溢超過了階碼可能表示的最大值的正指數(shù)值,一般將其認為是+∞和-∞。階碼下溢超過了階碼可能表示的最小值的負指數(shù)值,一般將其認為是0。對尾數(shù)的溢出也需要處理尾數(shù)上溢

兩個同符號尾數(shù)相加產(chǎn)生了最高位向上的進位,將尾數(shù)右移,階碼增1來重新對齊。尾數(shù)下溢在將尾數(shù)右移時,尾數(shù)的最低有效位從尾數(shù)域右端流出,要進行舍入處理3.5.3浮點乘/除法設(shè)有兩個浮點數(shù)x和y:x=2Ex·Mx,y=2Ey·My浮點乘法運算的規(guī)則是:x

y=2(Ex+Ey)·(Mx

My)浮點除法運算的規(guī)則是:

x÷y=2(Ex-Ey)·(Mx÷My)浮點乘、除法運算步驟:(1)0操作數(shù)檢查;(2)階碼加/減操作;(3)尾數(shù)乘/除操作;(4)結(jié)果規(guī)格化及舍入處理浮點運算流水線流水線原理把輸入的任務(wù)分割為一系列子任務(wù),使各子任務(wù)能在流水線的各個階段并發(fā)地執(zhí)行;將任務(wù)連續(xù)不斷地輸入流水線,從而實現(xiàn)了子任務(wù)的并行。在流水線中,原則上要求各個階段的處理時間都相同。對子任務(wù)的劃分,是決定流水線性能的一個關(guān)鍵因素。假定作業(yè)T被分成k個子任務(wù),可表達

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論