計算機組成課件.ppt_第1頁
計算機組成課件.ppt_第2頁
計算機組成課件.ppt_第3頁
計算機組成課件.ppt_第4頁
計算機組成課件.ppt_第5頁
已閱讀5頁,還剩97頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、計算機組成原理,第4章 數(shù)值的機器運算,主要內(nèi)容 4.1 基本算術(shù)運算的實現(xiàn) 4.2定點加減運算 4.3帶符號數(shù)的移位和舍入操作 4.4定點乘法運算 4.5定點除法運算 4.6規(guī)格化浮點運算 4.7運算器的基本組成,4.1基本算術(shù)運算的實現(xiàn),全加器 串行加法器與并行加法器 并行進位的并行加法器 4ALU舉例,4.1.1全加器 基本的加法單元稱為全加器,實現(xiàn)兩個1位二進制數(shù)相加。它要求三個輸入量:操作數(shù)Ai和Bi、低位傳來的進位Ci-1,并產(chǎn)生兩個輸出量:本位和Si、向高位的進位Ci。,1.全加器的真值表:,2.全加器的邏輯表達式為 Si=AiBiCi-1 Ci=AiBi+(AiBi)Ci-1,

2、4.1.2串行加法器與并行加法器 1.在串行加法器中,只有一個全加器,數(shù)據(jù)逐位串行送入加法器進行運算。 如果操作數(shù)長n位,加法就要分n次進行,每次只能產(chǎn)生一位和。,2.串行進位并行加法器 把n個全加器串接起來,就可進行兩個n位數(shù)的相加。串行進位又稱行波進位,每一級進位直接依賴于前一級的進位,即進位信號是逐級形成的。其位數(shù)的多少取決于機器的字長,數(shù)據(jù)的各位同時運算。串行進位鏈的總延遲時間與字長成正比。,串行進位并行加法器雖然操作數(shù)的各位是同時提供的,但低位運算所產(chǎn)生的進位有可能會影響高位的運算結(jié)果。例如:1111和0001相加,最低位產(chǎn)生的進位將逐位影響至最高位。因此,并行加法器的最長運算時間主

3、要是由進位信號的傳遞時間決定的。提高并行加法器速度的關(guān)鍵是盡量加快進位產(chǎn)生和傳遞的速度。,4.1.3并行進位的并行加法器 并行進位又叫先行進位,其特點是各級進位信號同時形成。各進位信號的表達式如下:,C1=G1+P1C0 C2=G2+P2C1=G2+P2G1+P2P1C0,C3=G3+P3G2+P3P2G1+P3P2P1C0 C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0,Pi =(AiBi) 稱為進位傳遞函數(shù) Gi =AiBi稱為進位產(chǎn)生函數(shù),進位產(chǎn)生函數(shù)表示和如果同為1,則肯定會向高位產(chǎn)生進位 進位傳遞函數(shù)表示和中有一個為1,肯定會將地位的進位Ci-1傳遞上去,

4、上述各式中所有各位的進位均不依賴于低位的進位,各位的進位可以同時產(chǎn)生。利用先行進位部件產(chǎn)生進位信號。,4.1.4分組并行進位方式,隨著加法器位數(shù)的增加,Ci的邏輯表達式會變得越來越復(fù)雜。所以,完全采用并行進位是不現(xiàn)實的。通常采用分組并行進位方式。這種進位方式是把n位字長分為若干小組,在組內(nèi)各位之間實行并行快速進位,在組間既可以采用串行進位方式,也可以采用并行快速進位方式。,(1)單級先行進位方式 組內(nèi)并行、組間串行方式。 以16位加法器為例,可分為四組,每組四位。第1小組組內(nèi)的進位邏輯函數(shù)C1、C2、C3、C4的表達式與前述相同,C1C4信號是同時產(chǎn)生的,從C0出現(xiàn)到產(chǎn)生C1C4的延遲時間是2

5、ty。,8,=G1*+P1*C0,(2)多級先行進位方式 組內(nèi)并行、組間并行進位方式。 字長為16位的兩級先行進位加法器,第一小組的最高位進位C4: C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0,組進位 產(chǎn)生函數(shù)G1*,組進位 傳遞函數(shù)P1*,依次類推: C8=G2*+P2*G1*+P2*P1*C0 C12=G3*+P3*G2 * +P3*P2*G1*+P3*P2*P1*C0 C16=G4*+P4*G3*+P4*P3*G2*+P4*P3*P2*G1*+P4*P3*P2*P1*C0,CLA電路為實現(xiàn)進位邏輯函數(shù)的電路,若不考慮Gi、Pi的形成時間,C0經(jīng)過2ty產(chǎn)生

6、第1小組的C1、C2、C3及所有組進位產(chǎn)生函數(shù)Gi*和組進位傳遞函數(shù)Pi*;再經(jīng)過2ty,產(chǎn)生C4、C8、C12、C16;最后經(jīng)過2ty后,才能產(chǎn)生第2、3、4小組內(nèi)的C5C7、C9C11、C13C15。,基本算術(shù)運算的實現(xiàn)電路,四位CLA加法器,四位BCLA加法器,4.1.5 ALU舉例 74181是四位算術(shù)邏輯運算部件,能執(zhí)行16種算術(shù)運算和16種邏輯運算。 A0、B0A3、B3:操作數(shù)輸入端; F0F3:輸出端; Cn:進位輸入端; Cn+4:進位輸出端; G* :組進位產(chǎn)生函數(shù)輸出端; P*:組進位傳遞函數(shù)輸出端; M:工作方式,M=0為算術(shù)操作,M=1為邏輯操作; S0S3:功能選擇

7、線。 74181的4位作為一個小組,組間既可以采用串行進位,也可以采用并行進位。 當采用組間串行進位時,只要把前片的Cn+4與下一片的Cn相連即可。 當采用組間并行進位時,需要增加一片先行進位部件(74182)。 74181和74182的結(jié)合可組成各種位數(shù)的ALU部件。,構(gòu)造16位ALU,用4片74181電路可組成16位ALU。 方案1:如圖:片內(nèi)進位是快速的,但片間進位是逐片傳遞的,因此形成F0F15的時間還是比較長。,圖: 16位快速ALU,方案2:16位快速ALU 片間超前進位產(chǎn)生電路,又稱超前進位擴展器。 例如74182,4.2 定點加減運算器,4.2.1 原碼加減運算 符號位不參與運

8、算 兩數(shù)的絕對值加或者減 實現(xiàn)復(fù)雜(需要一套加法電路和一套減法電路) 例如:兩異號數(shù)相加,實際要做減法,4.2.2補碼加減運算,1.補碼加法規(guī)則 根據(jù)補碼定義可以證明: X+Y補=X補+Y補 兩數(shù)和的補碼等于兩數(shù)補碼之和 2.補碼減法規(guī)則 X-Y補=X+(-Y)補=X補+-Y補 -Y補叫Y的機器負數(shù),3.計算機中補碼加減運算規(guī)則 參加運算的兩個操作數(shù)均用補碼表示; 符號位作為數(shù)的一部分參加運算; 若做加法,則兩數(shù)直接相加;若做減法,則將被減數(shù)與減數(shù)的機器負數(shù)相加; 運算結(jié)果用補碼表示。 一套加法電路和求補電路,4.已知Y補求-Y補的方法是 將Y補連同符號位一起求反,末尾加“1” 例1:Y=-0

9、.0110 Y補=1.1010,-Y補=0.0110 例2:Y=0.0110 Y補=0.0110,-Y補=1.1010,5.補碼加減運算舉例 例1:A=0.1011,B=-0.1110,求:A+B A補=0.1011,B補=1.0010 0.1011 + 1.0010 1.1101 A+B補=1.1101,A+B=-0.0011,例2:A=0.1011,B=-0.0010,求:A-B A補=0.1011,B補=1.1110,-B補=0.0010 0.1011 + 0.0010 0.1101 A-B補=0.1101, A-B=0.1101,4.2.3溢出的產(chǎn)生和判斷 在補碼加減運算中,有時會遇到

10、這樣的情況:兩個正數(shù)相加,而結(jié)果的符號位卻為1(結(jié)果為負);兩個負數(shù)相加,而結(jié)果的符號位卻為0(結(jié)果為正)。 例1:設(shè):X=1011B=11D,Y=111B=7D X補=0,1011,Y補=0,0111 X+Y補=1,0010,X+Y=-1110B=-14D 兩正數(shù)相加結(jié)果為-14D,顯然是錯誤的。,0,1 0 1 1,+ 0,0 1 1 1,1,0 0 1 0,例2:設(shè):X=-1011B=-11D,Y=-111B=-7D X補=1,0101 Y補=1,1001 X+Y補=0,1110,X+Y=1110B=14D 兩負數(shù)相加結(jié)果為14D,顯然也是錯誤的。,1,0 1 0 1,+ 1,1 0 0

11、 1,0,1 1 1 0,為什么會發(fā)生這種錯誤呢?原因在于兩數(shù)相加之和的數(shù)值已超過了機器允許的表示范圍。 字長為n+1位的定點整數(shù)(其中一位為符號位),采用補碼表示,當運算結(jié)果大于2n-1或小于-2n時,就產(chǎn)生溢出。,當采用補碼加減運算時,由于只做做加法運算,則參加運算的兩數(shù)為X、Y, 若X、Y異號,(兩個異號數(shù)相加)不會溢出。 若X、Y同號,可能產(chǎn)生溢出。 同為正,則運算結(jié)果可能大于所能表示的最大正數(shù),則產(chǎn)生溢出,稱為正溢 同為負數(shù),運算結(jié)果可能小于所能表示的最小負數(shù)時,產(chǎn)生溢出,稱為負溢。,溢出檢測方法 設(shè):被操作數(shù)為:X補=Xs,X1X2Xn 操作數(shù)為:Y補=Ys,Y1Y2Yn 其和(差

12、)為:S補=Ss,S1S2Sn 利用用符號位判斷 當Xs=Ys=0,Ss=1時,產(chǎn)生正溢。 當Xs=Ys=1,Ss=0時,產(chǎn)生負溢。, 采用進位位判斷溢出 兩數(shù)運算時,符號位產(chǎn)生的進位Cf和最高數(shù)值位產(chǎn)生的進位C1不相同時,產(chǎn)生溢出,如圖所示:單符號位補碼加法及溢出檢測, 采用變形補碼(雙符號位補碼)時的溢出檢測 采用雙符號位補碼時,左邊的符號位Sf1代表該數(shù)真正的符號 兩個符號位都作為數(shù)的一部分參加運算。 可以證明: Sf1Sf2=00 結(jié)果為正數(shù),無溢出 Sf1Sf2=01 結(jié)果正溢 Sf1Sf2=10 結(jié)果負溢 Sf1Sf2=11 結(jié)果為負數(shù),無溢出 當兩位符號位的值不一致時,表明產(chǎn)生溢

13、出。 溢出=Sf1Sf2,如圖所示:雙符號數(shù)溢出檢測,例:4位補碼數(shù)的表示范圍為-1615,采用變形補碼(雙符號位)運算,則有: 11+7=18(正溢) 0 0,1 0 1 1 + 0 0,0 1 1 1,0 1,0 0 1 0,-11+(-7)=-18(負溢) 1 1,0 1 0 1 + 1 1,1 0 0 1,1 0,1 1 1 0,補碼加減法規(guī)則,1、 X補,Y補,-Y補 2、 X+Y補=X補+ Y補 X-Y補=X補+ -Y補 豎式求和 3、寫結(jié)果X+Y補=/ X-Y補= 或 結(jié)果發(fā)生溢出 4、驗證(二選一) (1)正確性驗證 Z1 = X+Y ;真值求和 由第三步求得的 X+Y補,計算

14、X+Y=Z2(真值) 由于Z1和Z2相等,結(jié)果正確 (2)異常驗證 根據(jù)判溢出規(guī)則判斷是否溢出,例:字長N=5,X=+13,Y=-11,求X+Y, X-Y。 1、求機器數(shù) X補= +13補= +1101B補=01101B Y補= -11補= -1011B補=10101B -Y補=01011B 2、求X+Y 00 1101 + 11 0101 00 0010 3、 X+Y補=00010B 4、 Z1 =X+Y=+13+(-11)=+2 X+Y補=00010BX+Y=+0010B=+2= Z2 Z1 = Z2,結(jié)果正確,求X-Y: 2、 00 1101 + 00 1011 01 1000 3、兩個

15、符號位不同,結(jié)果發(fā)生溢出 4、Z =X-Y=+13-(-11)=+24 字長為5,補碼表示數(shù)的范圍是-16-+15 +24+15,結(jié)果發(fā)生正溢出,4.2.4補碼定點加減法的實現(xiàn)電路 補碼加法:圖中X、Y代表兩個寄存器,F(xiàn)代表多位并行加法器。由控制信號XF、YF、FX、CPX控制數(shù)據(jù)的傳送。,加法時: 1F無效(為0),補碼減法:XF、YF、1F、FX、CPX,FX,CPX,1F,同一套電路實現(xiàn)加減運算,減法時:1F有效(為1),4.3帶符號數(shù)移位和舍入操作,4.3.1帶符號數(shù)移位和舍入操作 二進制數(shù)左移一位使數(shù)值增大一倍,相當于該數(shù)乘以2,而右移一位則使數(shù)值縮小一倍,相當于該數(shù)除以2。,1.移

16、位規(guī)則 原碼:無論正負,保持符號位不變,空出位補0 例如:負數(shù)的原碼移位后的空出位補0,補碼: 左移:保持符號位不變,空出位補0 右移:保持符號位不變,空出位補符號位。,2. 移位功能的實現(xiàn) 計算機中, 移位操作通常由移位寄存器來實現(xiàn)。 移位寄存器: 除了具有寄存信息的功能外,還具有移位功能,在移位脈沖的作用下,能夠把寄存器中代碼依次向右或向左移動。,4.3.2 帶符號數(shù)的舍入操作 在算術(shù)右移中,運算結(jié)果有可能需要舍去一定的尾數(shù),會造成一些誤差。為了縮小誤差,就要進行舍入處理。 1.恒舍(切斷) 無論移出部分為何代碼,一律舍去,保留部分不作任何改變。 2.恒置1法 不論移出多余部分為何代碼,都

17、把剩余部分的最低位置1。 3. 0舍1入法 用將要舍去的q位部分的最高位作為判斷標志,如該位為0,則舍去整個q位部分,如該位為1,則在前面的p位部分的最低位上加1。,4.查表舍入法 用ROM存放下溢處理表,每次經(jīng)查表來讀得相應(yīng)的處理結(jié)果。ROM表的容量為2K個單元,每個單元字長為K-1位。下溢處理表的內(nèi)容設(shè)置一般采用的方法是:當K位數(shù)據(jù)的高K-1位為全“1”時,讓那些單元按截斷法填入K-1位全“1”,其余單元都按最低位(即附加位)0舍1入的結(jié)果來填其內(nèi)容。,地址 內(nèi)容 000 00 001 01 010 01 011 10 100 10 101 11 11 111 11,截斷法將尾數(shù)超出機器字

18、長的那部分簡單截掉。最大誤差:整數(shù)時接近1,分數(shù)時接近2-m。對于正數(shù)總存在負誤差。截斷誤差均勻分布。統(tǒng)計平均誤差為負且較大,無法調(diào)節(jié)實現(xiàn)最簡單,不增加硬件,不需要處理時間最大誤差較大,平均誤差大且不能調(diào)節(jié)。目前很少用。舍人法在機器運算部分規(guī)定字長之外,再增設(shè)一位附加位存放溢出部分的最高位,每當尾數(shù)下溢處理時,將附加位加1,再截取規(guī)定字長部分作為處理后的結(jié)果。最大誤差:整數(shù)時0.5,分數(shù)時2-(m+1)。對于正數(shù)誤差有正有負。統(tǒng)計平均誤差趨于零但略偏正。平均誤差無法調(diào)節(jié)實現(xiàn)簡單,增加硬件很少,最大誤差小,平均誤差接近于零處理速度慢。在中低速機器上或者要求精度損失盡可能小的場合下使用較多。恒置“

19、1”法讓機器運算器規(guī)定字長的最低位恒為“1”狀態(tài)最大誤差:整數(shù)時1,分數(shù)時2-m。對于正數(shù)誤差有正有負。統(tǒng)計平均誤差接近零但略偏正。平均誤差無法調(diào)節(jié)實現(xiàn)最簡單,不增加硬件,不需要處理時間,平均誤差接近于零最大誤差最大。多用于中、高速機器(增長尾數(shù))。查表舍入法用ROM或PLA芯片存放下溢處理結(jié)果表,每次經(jīng)查表來讀得相應(yīng)的處理結(jié)果。當尾數(shù)最低k-1位全“1”時以截取法設(shè)置,其余情況按舍入法設(shè)置。速度較快,平均誤差可調(diào)節(jié)到零硬件量大上述4種處理方法中,最大誤差最大的是恒置“1”法,最小的是舍人法;平均誤差最大的是截斷法;平均誤差可人為調(diào)節(jié)的是查表舍入法;下溢處理不需要附加時間開銷,即速度最快的是截

20、斷法和恒置“1”法,處理速度最慢的是舍人法;實現(xiàn)上最花費硬件的是查表舍入法,最省硬件的是截斷法和恒置“1”法。,4.4定點乘法運算,4.4.1原碼一位乘法 用原碼實現(xiàn)乘法運算是十分方便的。 用兩個操作數(shù)的絕對值相乘 乘積的符號為兩操作數(shù)符號的異或值(同號為正,異號為負)。即: 乘積 P|X|Y| 符號Ps=XsYs,0.1 1 0 1 0.1 0 1 1,1 1 0 1 1 1 0 1 0 0 0 0 + 1 1 0 1,0.1 0 0 0 1 1 1 1 因為Ps=XsYs=01=1 所以XY=-0.10001111,1.手算乘法 例如: X=0.1101, Y=-0.1011,,2.手工乘

21、法存在的問題 多個數(shù)同時相加機器很難實現(xiàn) 加法器位數(shù)是操作數(shù)位數(shù)的兩倍,3.機器原碼一位乘法的規(guī)則為:(部分積右移) 符號位單獨處理,同號為正,異號為負; 部分積初值為0,令乘數(shù)的最低位為判斷位,若為“1”,加被乘數(shù),若為“0”,不加被乘數(shù)(加0); 累加后的部分積右移一位。(需保存) 循環(huán)上述過程,4.實現(xiàn): 乘法運算需要三個寄存器: A寄存器:存放部分積與最后乘積的高位部分,初值為0。 B寄存器:被乘數(shù)X。 C寄存器:乘數(shù)Y,運算后C寄存器中不再需要保留乘數(shù),改為存放乘積的低位部分。 還需要進行移位次數(shù)控制 部分積右移時,部分積和乘數(shù)兩個寄存器串聯(lián)移位。,流程圖,例: 已知:X=0.110

22、1,Y=-0.1011, 求:XY。 |X|=0.1101B,|Y|=0.1011C,0A 符號位不參加運算 A、C寄存器級聯(lián),右移。 PS=XSYS=01=1 XY=-0.10001111,運算過程,4.4.2 補碼一位乘法 比較法(Booth法) 設(shè):被乘數(shù)X補=Xs.X1X2Xn 乘數(shù)Y補=Ys.Y1Y2Yn,Booth乘法規(guī)則如下: 參加運算的數(shù)用補碼表示; 符號位參加運算; 在乘數(shù)的最低位之后增加一位附加位Yn+1,它的初值為0。 每次運算由乘數(shù)相鄰兩位Yn、Yn+1(稱為判斷位)的值決定每次應(yīng)執(zhí)行的操作;,判斷位Yn Yn+1 操 作 0 0 原部分積加0右移一位 0 1 原部分積

23、加X補后右移一位 1 0 原部分積加-X補后右移一位 1 1 原部分積加0右移一位 移位按補碼右移規(guī)則進行; 共需做n+1次累加,n次移位。(最后一次不移位),流程圖:,例:已知X=-0.1101,Y=0.1011;求XY。 X補=1.0011B,Y補=0.1011C,0A -X補=0.1101 需進行5次累加,4次移位,如圖所示: XY補=1.01110001 X Y=-0.10001111,A C 附加位 說明,0 0.0 0 0 0 0.1 0 1 1 0,+-X補 0 0.1 1 0 1 C4C5=10,+-X補,0 0.1 1 0 1, 0 0.0 1 1 0 1 0 1 0 1 1

24、 部分積右移一位,+0 0 0.0 0 0 0 C4C5=11,+0,0 0.0 1 1 0, 0 0.0 0 1 1 0 1 0 1 0 1 部分積右移一位,+X補 1 1.0 0 1 1 C4C5=01,+X補,1 1.0 1 1 0, 1 1.1 0 1 1 0 0 1 0 1 0 部分積右移一位,+-X補 0 0.1 1 0 1 C4C5=10,+-X補,0 0.1 0 0 0, 0 0.0 1 0 0 0 0 0 1 0 1 部分積右移一位,+X補 1 1.0 0 1 1 C4C5=01,+X補,1 1.0 1 1 1,為了進一步提高乘法運算的速度,可采用高速乘法模塊組成的陣列乘法器

25、??赏瑫r得到各項部分積,并一次將其相加就得到乘積。,例:m=n=4時,有: x4 x3 x2 x1 x0 * y4 y3 y2 y1 y0 - X4y0 x3y0 x2y0 x1y0 x0y0 X4y1 x3y1 x2y1 x1y1 x0y1 X4y2 x3y2 x2y2 x1y2 x0y2 X4y3 x3y3 x2y3 x1y3 x0y3 X4y4 x3y4 x2y4 x1y4 x0y4,P8 P7 P6 P5 P4 P3 P2 P1 P0,內(nèi)部結(jié)構(gòu):,4.5 定點除法 1.手工除法計算XY:X=0.1011,Y=0.1101, 0.1 1 0 1 商 0.1 1 0 1 0.1 0 1 1

26、 0 1 1 0 1 1 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 1 1 1 1 余數(shù) XY=商+ =0.1101+0.01112-4/0.1101,余數(shù),除數(shù),除法實際是從被除數(shù)中不斷的減除數(shù),商即為被除數(shù)中包含除數(shù)的個數(shù)。 對于二進制除法,夠減則商1,否則商0,計算得新的余數(shù)后,末位加一個0 然后除數(shù)縮小一個數(shù)量級(右移1位)與新余數(shù)繼續(xù)比較,上商。此時商縮小一個數(shù)量級。,2. 原碼一位恢復(fù)余數(shù)法 恢復(fù)余數(shù)法是人工除法的改進。改除數(shù)右移為余數(shù)左移。 (1)直接作減法試探X-Y,通過X+(-Y)補 (2)若余數(shù)為正,表示夠減,該位商上“1” ; 若余數(shù)為負,表示不夠減

27、,該位商上“0”,并要恢復(fù)原來的被除數(shù)(或余數(shù))。即在余數(shù)上加上Y; (3)余數(shù)左移一位 (4)重復(fù) 參見課本例3.38,3. 原碼不恢復(fù)余數(shù)法(原碼加減交替法),分析原碼一位恢復(fù)余數(shù)除法過程,設(shè)第i步的余數(shù)為Ri(減法試探的結(jié)果),則: 當Ri0時:上商1,左移一位,然后減|除數(shù)|,結(jié)果作為下次上商的依據(jù)(新余數(shù))即 2*Ri+- |Y|補 當Ri0時:上商0,恢復(fù)余數(shù)Ri+ |Y|補,左移一位后減|除數(shù)|,即: 2*(Ri+ |Y|補)+- |Y|補=2* Ri+2* |Y|補+- |Y|補 =2* Ri+ |Y|補 所以,不恢復(fù)余數(shù),前一次商1,求新余數(shù)時+- |Y|補 前一次商0,求新

28、余數(shù)時+ |Y|補,原碼不恢復(fù)余數(shù)法是對恢復(fù)余數(shù)法的一種改進。 第一步: |X|+-|Y| 補 第二步:余數(shù)為正,商0,左移, +|Y|補 余數(shù)為負,商1,左移, +-|Y|補 重復(fù)第二步。 注意: 若除數(shù)n位,不含符號,則進行n+1次判斷和上商,最后一次不移位。 當最終余數(shù)為負數(shù)時,必須恢復(fù)一次余數(shù),使之變?yōu)檎嬗鄶?shù),例:已知:X=0.10101,Y=-0.11110,求:XY。 |X|=0.10101A,|Y|=0.11110B,0C |Y|變補=1.00010 經(jīng)過原碼加減交替除法,有: 商=0.10110 余數(shù)=0.011002-5 XY=-(0.10110+ ),A C 說明,0 0.

29、1 0 1 0 1 0.0 0 0 0 0,+-|Y|補 1 1.0 0 0 1 0 -|Y|,1 1.1 0 1 1 1 0.0 0 0 0 0 余數(shù)為負,商0, 1 1.0 1 1 1 0 左移一位,+|Y| 0 0.1 1 1 1 0 +|Y|,0 0.0 1 1 0 0 0.0 0 0 0 1 余數(shù)為正,商1, 0 0.1 1 0 0 0 左移一位,+-|Y|補 1 1.0 0 0 1 0 -|Y|,1 1.1 1 0 1 0 0.0 0 0 1 0 余數(shù)為負,商0, 1 1.1 0 1 0 0 左移一位,+|Y| 0 0.1 1 1 1 0 +|Y|,0 0.1 0 0 1 0 0.

30、0 0 1 0 1 余數(shù)為正,商1, 0 1.0 0 1 0 0 左移一位,+-|Y|補 1 1.0 0 0 1 0 -|Y|,0 0.0 0 1 1 0 0.0 1 0 1 1 余數(shù)為正,商1, 0 0.0 1 1 0 0 左移一位,+-|Y|補 1 1.0 0 0 1 0 -|Y|,1 1.0 1 1 1 0 0.1 0 1 1 0 余數(shù)為負,商0,+|Y| 0 0.1 1 1 1 0 恢復(fù)余數(shù),+|Y|,0 0.0 1 1 0 0,計算過程,4.6 規(guī)格化浮點數(shù)運算方法,4.6.1規(guī)格化浮點數(shù)的尾數(shù)M應(yīng)滿足: 1/2|M|1 設(shè)尾數(shù)用雙符號位補碼表示。則以下為規(guī)格化表示: 00.1 x

31、x x 11.0 x x x,4.6.2 移碼表示 移碼相當于X在數(shù)軸上向正方向偏移了若干單位即: 移碼=偏置值+真值 對于字長為n的計算機,若最高位為符號位,數(shù)值為n1位,當偏移量取2 n-1時,其移碼就是在補碼的基礎(chǔ)上對于符號位取反。 移碼常用于浮點數(shù)中的階碼表示。,移碼計算舉例: (1)寫出X移=10111101和Y移=00101011所代表的實際值。 (2)說明移碼的使用場合。 (3)計算二移碼數(shù)的和、差。 解:x移=10111101=(00111101)補 x=(0111101) 2=(61)10 或:10111101-10000000=0 0111101 y移=00101011=(

32、10101011) 補 y=(-1010101) 2=(-85)10,x移+y移=10111101+00101011=11101000 對運算結(jié)果要加27進行修正得01101000,即十進制-24 x移+-y移=10111101+11010101=10010010 對運算結(jié)果要加27進行修正得00010010 發(fā)生了溢出,4.6.3浮點加減運算 設(shè)兩個非0的規(guī)格化浮點數(shù)分別為 A=MA2EA B=MB2EB 運算步驟: 1.對階 兩個浮點數(shù)相加或相減,首先要把小數(shù)點的位置對齊,而浮點數(shù)的小數(shù)點的實際位置取決于階碼的大小。因此,對齊兩數(shù)的小數(shù)點,就是使兩數(shù)的階碼相等,這個過程稱為對階。 對階的規(guī)

33、則是:小階向大階看齊。,首先應(yīng)求出兩數(shù)階碼EA和EB之差,即:E=EA-EB 當EAEB時,要通過尾數(shù)的移位來使EA=EB相等。要使小階的階碼增大,則相應(yīng)的尾數(shù)右移,直到兩數(shù)的階碼相等為止。對于r=2,每右移一位,階碼加1。 尾數(shù)右移后,應(yīng)對尾數(shù)進行舍入。 2.尾數(shù)加/減 對階之后,就可以進行尾數(shù)加/減,即 MAMBMC,3.尾數(shù)結(jié)果規(guī)格化 尾數(shù)加/減運算之后得到的數(shù)可能不是規(guī)格化數(shù),必須進行結(jié)果規(guī)格化操作。 設(shè)尾數(shù)用雙符號位補碼表示,經(jīng)過加/減運算之后,可能出現(xiàn)以下六種情況:, 00.1 x x x 11.0 x x x 00.0 x x x 11.1 x x x 01.x x x x 10

34、.x x x x,第、種情況,已是規(guī)格化數(shù)。 第、種情況需要使尾數(shù)左移以實現(xiàn)規(guī)格化,這個過程稱為左規(guī)。尾數(shù)每左移一位,階碼相應(yīng)減1(EC-1EC),直至成為規(guī)格化數(shù)為止。(左規(guī)可能需進行多次) 第、種情況應(yīng)將尾數(shù)右移一次以實現(xiàn)規(guī)格化。這個過程稱為右規(guī)。尾數(shù)每右移一位,階碼相應(yīng)加1(EC+1EC)。,4.舍入 右規(guī)或?qū)﹄A時尾數(shù)低位上的數(shù)值會移掉,使數(shù)值精度受影響,應(yīng)該進行舍入處理減少誤差 “0”舍“1”入法:當移掉的最高位為1時,在尾數(shù)的末位加1 恒置一法:,5.檢查階碼是否溢出 階碼下溢,則置結(jié)果為機器零。 若上溢,則置溢出標志。 什么是機器0? 當一個浮點數(shù)的尾數(shù)為0(不論階碼是何值),或階碼的值比能在機器中表示的最小值還小時,計算機都把該浮點數(shù)看成零值,稱為機器零。,例:有兩浮點數(shù)為 A=0.1011

溫馨提示

  • 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

提交評論