ch4-3 數(shù)值的機(jī)器運(yùn)算-定點(diǎn)除法_第1頁
ch4-3 數(shù)值的機(jī)器運(yùn)算-定點(diǎn)除法_第2頁
ch4-3 數(shù)值的機(jī)器運(yùn)算-定點(diǎn)除法_第3頁
ch4-3 數(shù)值的機(jī)器運(yùn)算-定點(diǎn)除法_第4頁
ch4-3 數(shù)值的機(jī)器運(yùn)算-定點(diǎn)除法_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第4章數(shù)值的機(jī)器運(yùn)算

1被除數(shù)x,其原碼為[x]原=xf.xn-1…x1x0除數(shù)y,其原碼為[y]原=y(tǒng)f.yn-1…y1y0

則有商q=x/y,其原碼為[q]原=(xf⊕yf)+(0.xn-1…x1x0/0.yn-1…y1y0)?商的符號運(yùn)算qf=xf⊕yf

與原碼乘法一樣;?商的數(shù)值部分的運(yùn)算,實(shí)質(zhì)上是兩個(gè)正數(shù)求商的運(yùn)算。與乘法一樣要解決運(yùn)算器位數(shù)和余數(shù)寄存器位數(shù)兩個(gè)問題。設(shè)有n位定點(diǎn)小數(shù):4.5.1原碼一位除法24.5.1原碼一位除法

X=0.1011,Y=0.1101

0.1101…商0.11010.10110x被除數(shù)

1101

x>y除數(shù)右移一位,減除數(shù)

10010r11101x>y除數(shù)右移一位,減除數(shù)

10100r21101x>y除數(shù)右移兩位,減除數(shù)

111r4余數(shù)

X÷Y=商+=0.1101+0.0111×2-4/0.11010.00.0

0.000.0000.00000.00000余數(shù)除數(shù)1.手算運(yùn)算步驟34.5.1原碼一位除法1、比較法4結(jié)果與手算相同,但余數(shù)不是真正的余數(shù),多乘了2n,故正確的余數(shù)應(yīng)為2-n×rn,即:0.000000010.0001第四次余數(shù)r4

1.0010被除數(shù)左移一位,2x>y,商1+1.0101減y,即+[-y]補(bǔ)0.0111第一次余數(shù)r1

0.1110r1左移一位,2r1>y,商1+1.0101減y0.0011第二次余數(shù)r2

0.0110r2左移一位,2r2<y,商0

0.1100r3左移一位,2r3=4r2>y,商1+1.0101減y0.10110.1001x<y,商00.1101例:x=0.1001,y=0.1011,求x/y=?[-y]補(bǔ)=1.0101562.恢復(fù)余數(shù)法72.原碼除法—恢復(fù)余數(shù)法取絕對值相除,兩個(gè)符號位。被除數(shù)減除數(shù),夠減時(shí),商1;不夠減時(shí)商0。減法用加法代替,加[-y]補(bǔ)(結(jié)果仍是原碼)。不夠減時(shí)需要恢復(fù)余數(shù)(加除數(shù))。余數(shù)要乘2-n(右移n位)【例1】x=0.1001,y=0.1011,用恢復(fù)余數(shù)法求x/y.

解:[x]原=[x]補(bǔ)=x=0.1001,[y]補(bǔ)=0.1011,[-y]補(bǔ)=1.01018

00.1001+[-y]補(bǔ)

11.0101x減y11.1110余數(shù)r0<0,商“0”+[y]補(bǔ)

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

00.1001r0’

01.00100

商0移入q,r0’左移

+[-y]補(bǔ)

11.0101減y00.0111r1>0,商“1”

00.11100.1商1移入q,r1左移

+[-y]補(bǔ)

11.0101減y00.0011r2>0,商“1”

00.01100.11商1移入q,r2左移

+[-y]補(bǔ)11.0101減y11.1011r3<0,商“0”

+[y]補(bǔ)00.1011恢復(fù)余數(shù)

00.0110r3’=2r2

00.11000.110商0移入q,r3’左移

+[-y]補(bǔ)

11.0101減y00.0001r4>0,商“1”

00.00010.1101商1移入q,r4不左移

被除數(shù)x/余數(shù)r商q說明[x]原=0.1001[y]補(bǔ)=0.1011[-y]補(bǔ)=1.0101011019故:[q]原=0.1101余數(shù)[r4]原=0.00000001恢復(fù)余數(shù)法由于要恢復(fù)余數(shù),使得除法的步數(shù)不固定,控制比較復(fù)雜。且在恢復(fù)余數(shù)時(shí),要多作一次加法,降低了執(zhí)行速度。103.加減交替法

特點(diǎn):當(dāng)運(yùn)算過程中出現(xiàn)不夠減的情況,不必恢復(fù)余數(shù),而是根據(jù)余數(shù)的符號,繼續(xù)往下運(yùn)算,因此步數(shù)固定,控制簡單。運(yùn)算規(guī)則:采用絕對值、用雙符號位進(jìn)行計(jì)算。

當(dāng)余數(shù)為正時(shí),商1,余數(shù)左移一位,減除數(shù);當(dāng)余數(shù)為負(fù)時(shí),商0,余數(shù)左移一位,加除數(shù)。若最后一步的余數(shù)為負(fù),要得到正確的余數(shù),還要恢復(fù)余數(shù)【例2】x=0.1001,y=0.1011,用加減交替法求x/y.

解:[x]原=[x]補(bǔ)=x=0.1001,[y]補(bǔ)=0.1011,[-y]補(bǔ)=1.010111=?12

00.1001+[-y]補(bǔ)

11.0101x減y11.1110余數(shù)r0<0,

11.11000商0,r和q左移一位

+[y]補(bǔ)

00.1011加y00.0111余數(shù)r1>000.11100.1商1,r和q左移一位+[-y]補(bǔ)

11.0101減y00.0011余數(shù)r2>0

00.0110

0.11商1,r和q左移一位

+[-y]補(bǔ)

11.0101減y11.1011余數(shù)r3<0

11.0110

0.110商0,r和q左移一位

+[y]補(bǔ)

00.1011加y00.0001余數(shù)r4>0

0.1101商1,僅q左移一位被除數(shù)x/余數(shù)r商q說明得:q=x/y=0.1101余數(shù)r=2-4r4=0.00000001[x]原=0.1001,[y]補(bǔ)=0.1011,[-y]補(bǔ)=1.0101134.5.1

原碼除法運(yùn)算原碼除法器的實(shí)現(xiàn):1、軟件實(shí)現(xiàn)

除法運(yùn)算需要3個(gè)寄存器:

A寄存器:存放被除數(shù)X,最后A寄存器中剩下的是擴(kuò)大了若干倍的余數(shù)。運(yùn)算過程中A寄存器的內(nèi)容將不斷地發(fā)生變化。

B寄存器:存放除數(shù)Y。

C寄存器:存放商Q,它的初值為0。2、硬件實(shí)現(xiàn)144.5定點(diǎn)除法運(yùn)算4.5.2補(bǔ)碼除法運(yùn)算

被除數(shù)和除數(shù)都用補(bǔ)碼表示,符號位參加運(yùn)算。1.夠減的判斷參加運(yùn)算的兩個(gè)數(shù)符號任意,夠減的情況如下:⑴同號X>0,Y>0,X-Y>0X<0,Y<0,-X-(-Y)>0X-Y<0⑵異號X>0,Y<0,X-(-Y)=(X+Y)>0X<0,Y>0,(-X)-Y>0X+Y<0>><<><><部分余數(shù)與除數(shù)同號部分余數(shù)與除數(shù)同號部分余數(shù)與除數(shù)異號部分余數(shù)與除數(shù)異號154.5定點(diǎn)除法運(yùn)算2.上商規(guī)則如果[X]補(bǔ)和[Y]補(bǔ)同號,則商為正數(shù),上商規(guī)則與原碼除法相同,即夠減時(shí)上商“1”,不夠減時(shí)上商“0”;如果[X]補(bǔ)和[Y]補(bǔ)異號,則商為負(fù)數(shù),上商規(guī)則與同號時(shí)相反,即夠減時(shí)上商“0”,不夠減時(shí)上商“1”。

將上商規(guī)則與夠減的判斷結(jié)合起來,可得到本次余數(shù)[ri]補(bǔ)和除數(shù)[Y]補(bǔ)同號,商上“1”,反之,商上“0”。

164.5定點(diǎn)除法運(yùn)算3.商符的確定

商符是在求商的過程中自動形成的,按補(bǔ)碼上商規(guī)則,第一次得出的商,就是實(shí)際應(yīng)得的商符。4.求新部分余數(shù)求新余數(shù)[ri+1]補(bǔ)的通式如下:

[ri+1]補(bǔ)=2[ri]補(bǔ)+(1-2Qi)×[Y]補(bǔ)

Qi表示第i步的商。若商上“1”,下一次操作為余數(shù)左移一位,減去除數(shù);若商上“0”,下一次操作為余數(shù)左移一位,加上除數(shù)。5.末位恒置1174.5定點(diǎn)除法運(yùn)算補(bǔ)碼加減交替除法規(guī)則:[X]補(bǔ)與[Y]補(bǔ)第一次操作[ri]補(bǔ)與[Y]補(bǔ)上商求新余數(shù)[ri+1]補(bǔ)的操作同號[X]補(bǔ)-[Y]補(bǔ)①同號(夠減)1[ri+1]補(bǔ)=2[ri]補(bǔ)-[Y]補(bǔ)②異號(不夠減)0[ri+1]補(bǔ)=2[ri]補(bǔ)+[Y]補(bǔ)異號[X]補(bǔ)+[Y]補(bǔ)①同號(不夠減)1[ri+1]補(bǔ)=2[ri]補(bǔ)-[Y]補(bǔ)②異號(夠減)0[ri+1]補(bǔ)=2[ri]補(bǔ)+[Y]補(bǔ)18若被除數(shù)與除數(shù)同號,被除數(shù)減去除數(shù);若被除數(shù)與除數(shù)異號,被除數(shù)加上除數(shù)。(2)余數(shù)和除數(shù)同號,商1,余數(shù)左移一位,下次減除數(shù);余數(shù)和除數(shù)異號,商0,余數(shù)左移一位,下次加除數(shù)。(3)重復(fù)步驟(2),連同符號位在內(nèi),共做n+1步。1.補(bǔ)碼加減交替算法

補(bǔ)碼除法的被除數(shù)、除數(shù)用補(bǔ)碼表示,符號位和數(shù)位一起參與運(yùn)算,商的符號位與數(shù)位由統(tǒng)一的算法求得。補(bǔ)碼一位除法19

11.0111

[x]補(bǔ),[y]補(bǔ)異號+[y]補(bǔ)

00.1101加除數(shù)

00.0100余數(shù)和除數(shù)同號

00.10001左移一位,商1

+[-y]補(bǔ)

11.0011減除數(shù)

11.1011余數(shù)和除數(shù)異號11.011010左移一位,

商0

+[y]補(bǔ)

00.1101加除數(shù)

00.0011余數(shù)和除數(shù)同號

00.0110

101左移一位,商1

+[-y]補(bǔ)

11.0011減除數(shù)

11.1001

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論