定點數(shù)乘除運算及實現(xiàn)_第1頁
定點數(shù)乘除運算及實現(xiàn)_第2頁
定點數(shù)乘除運算及實現(xiàn)_第3頁
定點數(shù)乘除運算及實現(xiàn)_第4頁
定點數(shù)乘除運算及實現(xiàn)_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

定點數(shù)乘除運算及實現(xiàn)第1頁,課件共28頁,創(chuàng)作于2023年2月例:設(shè)A=0.1101,B=0.1011,則AB的手工運算過程為:

①將多數(shù)一次相加,機器難以實現(xiàn)。一般的加法器,只能把兩個輸入數(shù)相加,多個位積的同時輸入是無法實現(xiàn)的②機器字長(即加法器)只有n位,而乘積位數(shù)增長了一倍,即2n問題:第2頁,課件共28頁,創(chuàng)作于2023年2月解決方案:(a)把一次求和的操作,變成逐步累加求部分積的操作

(b)將求積過程中左移位積的操作,改為位積不動,而是上次部分積右移的操作手工運算過程計算機內(nèi)運算的實現(xiàn)方法第3頁,課件共28頁,創(chuàng)作于2023年2月

[例]已知:X=-0﹒101,Y=-0﹒110,用原碼一位乘法求[X?Y

]原=?

[X]原=1﹒101

[Y]原=1﹒110②

[X?Y]原=1⊕1+(0﹒101)×(0﹒110)③則(0﹒101)×(0﹒110)的過程為:0﹒000+00﹒000———————————0﹒000

+X0﹒1

0

1

—————————————————0﹒1

0

1

0

0﹒00000﹒0

1

0

1

0+X—————————————————0﹒1

0

1

0﹒1

1

1

1

00﹒01

1

1

1

0

解:用原碼一位乘法實現(xiàn)X?Y過程為:

①所以:[X?Y]原=0+0﹒011110=0﹒011110第4頁,課件共28頁,創(chuàng)作于2023年2月

例:

已知X=+0.1101,Y=-0.1011,求Z=X·Y。解:

[X]原=0.1101【Y】原=1.1011

②[X?Y]原=0⊕1+(0﹒1101)×(0﹒1011)

③則(0﹒1101)×(0﹒1011)的過程為:

所以:[X?Y]原=[Z]原=1+0.10001111=1.10001111Z=

-0.10001111第5頁,課件共28頁,創(chuàng)作于2023年2月原碼一位乘法的乘法器結(jié)構(gòu)框圖如圖:所示:原碼一位乘法的乘法器工作原理:乘法開始時,“啟動”信號使控制觸發(fā)器Cx置“1”,于是開啟時序脈沖T。

當(dāng)乘數(shù)寄存器R1最末位為“1”時,部分積Zi和被乘數(shù)X在加法器中相加,其結(jié)果輸出至R0的輸入端。一旦打入控制脈沖T到來,控制信號LDR0使部分積右移一位,與此同時,R1也在控制信號LDR1作用下右移一位,且計數(shù)器i計數(shù)一次。當(dāng)計數(shù)器i=n時,計數(shù)器的溢出信號使觸發(fā)器Cx置“0”,關(guān)閉時序脈沖T,乘法宣告結(jié)束。第6頁,課件共28頁,創(chuàng)作于2023年2月

原碼兩位乘法:基本原理類似:只是從最低位開始,每次取兩位乘數(shù)與被乘數(shù)相乘,得到一次部分積,與上次部分積相加后右移2。有關(guān)原碼兩位乘法具體操作過程不再詳細(xì)討論第7頁,課件共28頁,創(chuàng)作于2023年2月補碼乘法補碼一位乘法

補碼與真值的關(guān)系:例:已知【Y】補=Y0.Y1Y2‥‥Yn,證明真值:Y=(-Y0)+Yi×2-ii=1n∑證明:①當(dāng)Y

0時,Y

0=0則真值Y

=(-0)+

0.Y1Y2‥‥Yn=i=1n∑Yi×2-i②當(dāng)Y

0時,Y

0=1依補碼的定義:Y

=【Y】補-2=1.Y1Y2‥‥Yn-2

=-1+0.Y1Y2‥‥Yn

=-1+i=1n∑Yi×2-i所以:Y=(-Y0)+i=1n∑Yi×2-i第8頁,課件共28頁,創(chuàng)作于2023年2月[例]已知:[N]補=1.1101,[-N]補=10011,求[N]補,[-N]補具有

的數(shù)值[N]補=1.1101

具有的數(shù)值為:解:N=-1×20+1×2-1+1×2-2+0×2-3+1×2-4[-N]補=10011具有的數(shù)值為:-N=-1×24+0×23+0×22+1×21+1×20=(-13)10=(-0.1875)10第9頁,課件共28頁,創(chuàng)作于2023年2月由補碼與真值轉(zhuǎn)換公式真值:

Y=(-Y0+)i=1n∑Yi×2-i=-Y0*20+Y1*2-1

+Y2*2-2

+…+Yn*2-n=-Y0*20+(Y1*20-Y1*2-1)

+(Y2*2-1-Y2*2-2)

+…+=(Y1-Y0)*20+…+(Yn+1-Yn)*2-n+(Y2-Y1)*2-1在最后1位后再補1位(Yi+1-Yi)*2-ii=0n=第10頁,課件共28頁,創(chuàng)作于2023年2月

[例]

已知:[N]補=0.1101,[-N]補=1.0011,

求[N]補,[-N]補具有的數(shù)值。[解:]

[N]補=0.1101具有的數(shù)值為:

N=(1-0)×2-0+(1-1)×2-1+(0-1)×2-2+(1-0)×2-3+(0-1)×2-4

=13/16[-N]補=1.0011具有的數(shù)值為

N=(0-1)×2-0+(0-0)×2-1+(1-0)×2-2+(1-1)×2-3+(0-1)×2-4

=-13/16第11頁,課件共28頁,創(chuàng)作于2023年2月補碼乘法公式:[X·Y]補=[X]補·[Y]補=

[X]補·Y證明過程:略由補碼乘法公式及補碼與真值的關(guān)系得:[X·Y]補=[X]補?Y=

[X]補【(Y1-Y0)20+(Y2-Y1)2-1

+‥(Yn+1-Yn)2-n】(Yi+1-Yi)*2-ii=0n?=[X]補?上式中Yn+1-Yn只有4中情況:0-0=00-1=-11-0=11-1=0下面通過例子來熟悉補碼一位乘法的操作過程:+0+[-X]補+[X]補+0第12頁,課件共28頁,創(chuàng)作于2023年2月[例]已知:X=-0﹒101,Y=-0﹒110,用補碼一位乘法求(X?Y)補

解:用補碼實現(xiàn)X?Y過程為:①

[X]補=1﹒011

[Y]補=1﹒010②[Y]補=1﹒0100③則用補碼一位乘法的過程為:0﹒0

0

0

+00﹒0

0

0

———————————0﹒0

0

0

+[-X]補0﹒1

0

1

————————————0﹒1

0

1

0

0﹒0

0

0

0

0﹒0

1

0

1

0[X]補—————————————1﹒0

1

1

1﹒1

0

1

1

01﹒11

0

1

1

0[-X]補=0﹒101

+[-X]補0﹒1

0

1—————————————————0﹒01

1

11

0[X?Y]補=0.011110所以:第13頁,課件共28頁,創(chuàng)作于2023年2月實現(xiàn)補碼一位乘法的乘法器的邏輯框圖如圖所示

補碼兩位乘法:是把補碼的一位乘法的兩個單步操作和并成一個操作。即:【(Zi+2)補】=2-2{【Zi補】+(Yn+1+Yn-2Yn-1)】·【X】補}第14頁,課件共28頁,創(chuàng)作于2023年2月3陣列乘法器.不帶符號的陣列乘法器例:4×4位不帶符號的陣列乘法器邏輯圖:第15頁,課件共28頁,創(chuàng)作于2023年2月2.3.2

定點除法運算及其實現(xiàn)

除法運算可采用:①原碼進行,又有恢復(fù)余數(shù)法和不恢復(fù)余數(shù)法

②補碼進行,采用加減交替法

③陣列除法器

1.原碼除法運算:是指用原碼表示兩數(shù)相除,求出原碼表示的商⑴運算規(guī)則:設(shè)有n位定點小數(shù)(定點整數(shù)也同樣適用):

被除數(shù)x:[x]原=xf.xn-1…x1x0除數(shù)y:[y]原=yf.yn-1…y1y0

則有商q其原碼為:

[q]原=(xf⊕yf)+(0.xn-1…x1x0/0.yn-1…y1y0)

原碼除法中據(jù)對余數(shù)的處理不同,又可分為:恢復(fù)余數(shù)法和加減交替法第16頁,課件共28頁,創(chuàng)作于2023年2月例:X=0.1001,Y=-0.1101,手算X/Y的過程為:恢復(fù)余數(shù)法的計算過程和手算相似:原碼恢復(fù)余數(shù)法解:符號位為:1數(shù)碼的手算過程為:最后:余數(shù):R=+0.00012-4商:Q=-0.1011第17頁,課件共28頁,創(chuàng)作于2023年2月(1)每次都是由心算來比較余數(shù)和除數(shù)的大小,余數(shù)大時,商1;余數(shù)小時,商0。第一次比較時,余數(shù)就是被除數(shù)。(2)每做一次減法,總是保持余數(shù)不動,而除數(shù)向右移一位。(3)最后據(jù)符號位運算的結(jié)果給商以正確的符號對上述手算計算過程分析得:為適應(yīng)機器運算,需要進行改進:(1)

用減法來比較余數(shù)和除數(shù)的大?。?)

除數(shù)右移改為余數(shù)左移。

(3)定點除法運算必須要求被除數(shù)的高n位小于除數(shù),否則益處下面就通過例子講一下原碼恢復(fù)余數(shù)法的在計算機的操作過程:第18頁,課件共28頁,創(chuàng)作于2023年2月例:X=0.1001,Y=-0.1101,用原碼恢復(fù)余數(shù)法求X/Y=?解:0.1001/0.1101用原碼恢復(fù)余數(shù)的過程為:[x/y]原=0⊕1=1(xf⊕yf)+|x|/|y|

符號:QS=[|x|]補[|Y|]補[-|Y|]補==0.1001=0.11011.0011第19頁,課件共28頁,創(chuàng)作于2023年2月余數(shù)>0商1即q3=1所以0.1001/0.1101用原碼恢復(fù)余數(shù)的過程為:0.1001

-︱y︱

+[-|y|]補1.0011

——————————1.1100

余數(shù)<0商0即q0=0+︱y︱0.1101

——————————0.1001左移1位1.0010

-︱Y︱

1.0011+[-|y|]補——————————0.0101余數(shù)>0商1即q1=1左移1位0.1010-|Y|

+[-|y|]補1.0011——————————1.1101余數(shù)<0

商0即q2=0+︱y︱

0.1101———————————0.1010左移1位1.0100-︱y︱

+[-|y|]補1.0011

——————————0.0111

左移1位0.1110

+[-|y|]補1.0011———————————0.0001余數(shù)>0商1即q4=1所以:商:Q=-0.1011,余數(shù):R=+0.00012-4第20頁,課件共28頁,創(chuàng)作于2023年2月用原碼恢復(fù)余數(shù)法:求|X|

/|Y|的解題步驟:

y*=︱Y︱先將被除數(shù)/余數(shù)減去除數(shù)得新余數(shù)Ri

若Ri>0:商“1”,再將Ri左移一位后減除數(shù)(即2Ri-y*),得新余數(shù)Ri′

若Ri<0:商“0”,先將Ri+y*,即完成恢復(fù)余數(shù)的運算,再對Ri+y*左移一位后減除數(shù),即2(Ri+y*)-y*

,得新的余數(shù)Ri′

再將上述過程重復(fù)n(除數(shù)位數(shù))次,共上n位商

最后所得的商和余數(shù)即為|X|

/|Y|

的商及余數(shù)}原碼恢復(fù)余數(shù)法算法:X-Y=R↗≥0↘商12R-Y=R≤0商02(R+Y)-Y=R↓→________________↑分析原碼恢復(fù)余數(shù)法得知:①當(dāng)余數(shù)Ri>0時,商“1”,再對Ri左移一位后減除數(shù),即2Ri-y*②當(dāng)余數(shù)Ri<0時,商“0”,先將Ri+y*,再2(Ri+y*)-y*,也即2Ri+y*。原碼恢復(fù)余數(shù)法可歸納為:①當(dāng)余數(shù)Ri>0時,商“1”,做2Ri-y*運算②當(dāng)余數(shù)Ri<0時,商“0”,做2(Ri+y*)-y*運算第21頁,課件共28頁,創(chuàng)作于2023年2月用原碼加減交替法:求|X|

/|Y|的解題步驟:

先將余數(shù)減去除數(shù)得新余數(shù)Ri

若Ri>0:商“1”,做2Ri-y*運算

若Ri<0:商“0”,做2Ri+y*運算

再將上述過程重復(fù)n(除數(shù)位數(shù))次,共上n位商

最后所得的商和余數(shù)即為|X|

/|Y|

的商及余數(shù)原碼不恢復(fù)余數(shù)法(加減交替法)原碼不恢復(fù)余數(shù)法算法:X-Y=R↗≥0↘商12R-Y=R≤0商02R+Y=R}→_______________↑↓原碼加減法可歸納為:①當(dāng)余數(shù)Ri>0時,商“1”,做2Ri-y*運算②當(dāng)余數(shù)Ri<0時,商“0”,做2Ri+y*運算第22頁,課件共28頁,創(chuàng)作于2023年2月例:

已知:X=-0﹒101,Y=0﹒110求:【x/y】原=?用不恢復(fù)余數(shù)法解。

[X/Y]原=1⊕0+(0﹒101)÷(0﹒110)[X]原=1﹒101[Y]原=0﹒110[-︱Y︱]補=1﹒010

則(0﹒101)÷(0﹒110)的原碼不恢復(fù)余數(shù)法的過程為:0﹒101

-︱Y︱1﹒0

1

0

—————————————1﹒1

1

1

余數(shù)<0商0即q0=0+︱Y︱

0﹒1

1

0

———————————————0﹒100

1﹒000

———————————————

-︱Y︱

1﹒0

10

0﹒0

10

余數(shù)>0商1即q1=10﹒1

00

-︱Y︱

1﹒0

10

———————————————1﹒1

10余數(shù)>0

商1即q2=11﹒1

00+︱Y︱

0﹒1

10

———————————————0﹒0

10余數(shù)<0商0即q3=0

x/y〕原=1.110余數(shù)為:0.010×2-3

1﹒1

10解:第23頁,課件共28頁,創(chuàng)作于2023年2月例:已知:x=0.1011,y=0.1101,求【x/y】原=?用恢復(fù)余數(shù)及加減交替法解。解:|x|

=0﹒1011|y|=0﹒1101(1)恢復(fù)余數(shù)法解0﹒1011/0﹒1101的過程為:【x/y】原=0⊕0+|x|/|y|[-|y|]補=1﹒0011

故【x/y】原=0.1101余數(shù)為:0.0111×2-4第24頁,課件共28頁,創(chuàng)作于2023年2月故:[x/y]原=0.1101余數(shù)為:0.0111×2-4@@@@@

(2)不恢復(fù)余數(shù)法解0﹒1011/0﹒1101的過程為:第25頁,課件共28頁,創(chuàng)作于2023年2月⑴補碼除法:指“符號位和數(shù)碼位一起參加除法運算,參加運算的操作數(shù)是補碼,求得的商數(shù)和余數(shù)也是補碼。⑵補碼除法運算方法:采用加減交替法。⑶補碼除法加減交替法的操作過程:

2.補碼除法運算③

重復(fù)第②步n-1次④第n次上商后,不再移位及+Y,-Y操作。⑤若商為負(fù)數(shù),則在商末尾加1

若余數(shù)與被除數(shù)X異號,則要糾余:若X,Y同號,用+Y糾余,若X,Y異號,用-Y糾余,

溫馨提示

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

最新文檔

評論

0/150

提交評論