浮點數(shù)表示及運算_第1頁
浮點數(shù)表示及運算_第2頁
浮點數(shù)表示及運算_第3頁
浮點數(shù)表示及運算_第4頁
浮點數(shù)表示及運算_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

浮點數(shù)表示及運算第一頁,共五十四頁,2022年,8月28日一、浮點數(shù)的表示N=Re×m=2E×M=2±e×(±m(xù))E0E1E2………EmM0M1M2………Mn尾數(shù)值階值階符尾符9×10-28=0.9×10-272×1033=0.2×1034任意一個十進(jìn)制數(shù)N可以寫成N=10E·×M

(十進(jìn)制表示)計算機中一個任意進(jìn)制數(shù)N可以寫成

m

:尾數(shù),是一個純小數(shù)。

e

:浮點的指數(shù),是一個整數(shù)。

R:基數(shù),對于二進(jìn)計數(shù)值的機器是一個常數(shù),一般規(guī)定R為2,8或16第二頁,共五十四頁,2022年,8月28日浮點數(shù)的表示范圍負(fù)上溢-+負(fù)數(shù)正數(shù)0正上溢負(fù)下溢正下溢N=2E×M|N|→∞產(chǎn)生正上溢或者負(fù)上溢|N|→0產(chǎn)生正下溢或者負(fù)下溢尾數(shù):用定點小數(shù)表示,給出有效數(shù)字的位數(shù),決定了浮點數(shù)的表示精度階碼:用定點整數(shù)形式表示,指明小數(shù)點在數(shù)據(jù)中的位置,決定了浮點數(shù)的表示范圍。一個機器浮點數(shù)由階碼和尾數(shù)及其符號位組成:最大正數(shù)最小正數(shù)最小負(fù)數(shù)最大負(fù)數(shù)第三頁,共五十四頁,2022年,8月28日8位定點小數(shù)可表示的范圍0.0000001

---0.1111111

1/128---127/128設(shè)階碼2位,尾數(shù)4位可表示2-11*0.0001---211*0.11110.0000001

---111.1設(shè)階碼3位,尾數(shù)3位可表示2-111*0.001---2111*0.1110.0000000001

---1110000機器字長一定時,階碼越長,表示范圍越大,精度越低浮點數(shù)表示范圍比定點數(shù)大,精度高第四頁,共五十四頁,2022年,8月28日一個浮點數(shù)有不同的表示:

0.5;0.05101

;0.005102;5010-2為提高數(shù)據(jù)的表示精度,需做規(guī)格化處理。浮點數(shù)是數(shù)學(xué)中實數(shù)的子集合,由一個純小數(shù)乘上一個指數(shù)值來組成。二、浮點數(shù)規(guī)格化把不滿足這一表示要求的尾數(shù),變成滿足這一要求的尾數(shù)的操作過程,叫作浮點數(shù)的規(guī)格化處理,通過尾數(shù)移位和修改階碼實現(xiàn)。在計算機內(nèi),其純小數(shù)部分被稱為浮點數(shù)的尾數(shù),對非0值的浮點數(shù),要求尾數(shù)的絕對值必須>=1/2,即尾數(shù)域的最高有效位應(yīng)為1,稱滿足這種表示要求的浮點數(shù)為規(guī)格化表示:

0.1000101010第五頁,共五十四頁,2022年,8月28日規(guī)格化目的:為了提高數(shù)據(jù)的表示精度為了數(shù)據(jù)表示的唯一性尾數(shù)為R進(jìn)制的規(guī)格化:絕對值大于或等于1/R二進(jìn)制原碼的規(guī)格化數(shù)的表現(xiàn)形式:

正數(shù)

0.1xxxxxx負(fù)數(shù)

1.0xxxxxx正數(shù)

0.1xxxxxx負(fù)數(shù)

1.1xxxxxx補碼尾數(shù)的規(guī)格化的表現(xiàn)形式:尾數(shù)的最高位與符號位相反。第六頁,共五十四頁,2022年,8月28日解:12310=11110112=0.11110110002×27

[7]移=10000+00111=10111 [0.1111011000]補=0.1111011000 [123]浮=10111

01111011000=BBD8H例:對數(shù)據(jù)12310作規(guī)格化浮點數(shù)的編碼,假定1位符號位,基數(shù)為2,階碼5位,采用移碼,尾數(shù)10位,采用補碼。第七頁,共五十四頁,2022年,8月28日S——尾數(shù)符號,0正1負(fù);M——尾數(shù),純小數(shù)表示,小數(shù)點放在尾數(shù)域的最前面。采用原碼表示。E——階碼,采用“移碼”表示(移碼可表示階符);

階符采用隱含方式,即采用移碼方法來表示正負(fù)指數(shù)。

SEM31302322032位

SEM63625251064位為便于軟件移植,使用IEEE(電氣和電子工程師協(xié)會)標(biāo)準(zhǔn)IEEE754

標(biāo)準(zhǔn):尾數(shù)用原碼;階碼用“移碼”;基為2。三、浮點數(shù)的標(biāo)準(zhǔn)格式IEEE754第八頁,共五十四頁,2022年,8月28日規(guī)格化浮點數(shù)的真值

x=

(-1)s

(1.M)2E-127e=E–127一個規(guī)格化的32位浮點數(shù)x的真值為:

SEM31302322032位浮點數(shù)格式:

x=(–1)s×(1.M)×2E-1023一個規(guī)格化的64位浮點數(shù)x的真值為:這里e是真值,E是機器數(shù)1.隱藏位技術(shù)2.階碼用“移碼”偏移值127而不是128Emin=1,Emax=254/2046原碼非0值浮點數(shù)的尾數(shù)數(shù)值最高位必定為1,則在保存浮點數(shù)到內(nèi)存前,通過尾數(shù)左移,強行把該位去掉,用同樣多的位數(shù)能多存一位二進(jìn)制數(shù),有利于提高數(shù)據(jù)表示精度,稱這種處理方案使用了隱藏位技術(shù)。當(dāng)然,在取回這樣的浮點數(shù)到運算器執(zhí)行運算時,必須先恢復(fù)該隱藏位。第九頁,共五十四頁,2022年,8月28日例:若浮點數(shù)x的二進(jìn)制存儲格式為(41360000)16,求其32位浮點數(shù)的十進(jìn)制值。解: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.01101100000000000000000=1.011011

于是有x=(-1)s×1.M×2e

=+(1.011011)×23=+1011.011=(11.375)10第十頁,共五十四頁,2022年,8月28日例:

將十進(jìn)制數(shù)20.59375轉(zhuǎn)換成32位浮點數(shù)的二進(jìn)制格式來存儲。解:首先分別將整數(shù)和分?jǐn)?shù)部分轉(zhuǎn)換成二進(jìn)制數(shù):

20.59375=10100.10011然后移動小數(shù)點,使其在第1,2位之間

10100.10011=1.010010011×24

e=4于是得到:e=E–127S=0,E=4+127=131=1000,0011,M=010010011最后得到32位浮點數(shù)的二進(jìn)制存儲格式為

01000001

101001001100000000000000=(41A4C000)16

第十一頁,共五十四頁,2022年,8月28日解:-0.75=-3/4=-0.112=-1.1×2-1

=(-1)1×(1+0.10000000000000000000000)×2-1=(-1)1×(1+0.10000000000000000000000)×2126-127s=1,E=12610=011111102,F(xiàn)=1000…000。

1011,1111,0100,0000,0000,0000,0000,0000

BF400000H例:將十進(jìn)制數(shù)-0.75表示成單精度的IEEE754標(biāo)準(zhǔn)代碼。第十二頁,共五十四頁,2022年,8月28日單精度浮點數(shù)編碼格式+0/-0000/1(-1)S×(0.f)

×2(-126)f(非零)00/1(-1)S×(1.f)

×2(e-127)f1~2540/1-∞02551+∞02550sNaNSignalingNaN非零0xxxx2550/1NaNNotaNumber非零1xxxx2550/1表示尾數(shù)階碼符號位第十三頁,共五十四頁,2022年,8月28日IEEE754規(guī)格化浮點數(shù)表示范圍Emax=2046,f=1.1111…,1.111…1×22046-1023

=21023×(2-2-52)Emin=1,M=0,1.0×21-1023=2-1022

雙精度Emax=254,f=1.1111…,1.111…1×2254-127

=2127×(2-2-23)Emin=1,M=0,1.0×21-127=2-126單精度最大值最小值格式第十四頁,共五十四頁,2022年,8月28日設(shè)有兩個浮點數(shù)x和y,它們分別為:浮點加減法運算其中Ex和Ey分別為數(shù)x和y的階碼,

Mx和My為數(shù)x和y的尾數(shù)。兩浮點數(shù)進(jìn)行加法和減法的運算規(guī)則是:

x±y=(Mx2Ex-Ey±My)2EyEx<=Ey

x=2Ex·Mxy=2Ey·My第十五頁,共五十四頁,2022年,8月28日完成浮點加減運算的操作過程大體分為:(1)0操作數(shù)的檢查;(2)比較階碼大小并完成對階;(3)尾數(shù)進(jìn)行加或減運算;(4)結(jié)果規(guī)格化。(5)舍入處理。(6)溢出處理。第十六頁,共五十四頁,2022年,8月28日使二數(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(右規(guī))。(2)對階(1)0操作數(shù)檢查

210*(0.11000)+28*(0.00110)大階對小階

210*(0.11000)--28*(11.000)11.000+0.00110?????????小階對大階

28*(0.00110)--210*(0.00001)0.00001+0.11000=0.11001第十七頁,共五十四頁,2022年,8月28日例:x=201×0.1101,y=211×(-0.1010),求x+y=?解:為便于直觀了解,兩數(shù)均以補碼表示,階碼、尾數(shù)均采用雙符號位。

[x]補=0001,00.1101[y]補=0011,11.0110[△E]補=[Ex]補-[Ey]補=0001+1101=1110

△E=-2,表示Ex比Ey小2,

因此將x的尾數(shù)右移兩位.

右移一位,

得[x]補=0010,00.0110

再右移一位,

得[x]補=0011,00.0011

至此,△E=0,對階完畢.第十八頁,共五十四頁,2022年,8月28日

尾數(shù)求和方法與定點加減法運算完全一樣。對階完畢可得:[x]補=0011,00.0011[y]補=0011,11.0110

對尾數(shù)求和:00.0011+11.011011.1001

即得:[x+y]補=0011,11.1001(3)尾數(shù)求和運算第十九頁,共五十四頁,2022年,8月28日(4)結(jié)果規(guī)格化求和之后得到的數(shù)可能不是規(guī)格化了的數(shù),為了增加有效數(shù)字的位數(shù),提高運算精度,必須將求和的結(jié)果規(guī)格化。①規(guī)格化的定義:

(二進(jìn)制)對正數(shù):S=00.1×××…×對負(fù)數(shù):S=11.0×××…×采用雙符號位的補碼:采用原碼:

正數(shù):S=0.1×××…×

負(fù)數(shù):S=1.1×××…×第二十頁,共五十四頁,2022年,8月28日規(guī)格化規(guī)則運算結(jié)果產(chǎn)生溢出時,必須進(jìn)行右歸如變形補碼結(jié)果出現(xiàn)10.XX

或者01.XXX如運算結(jié)果出現(xiàn)0.0XXX或1.1XX

必須左歸左歸時最低數(shù)據(jù)有效位補0右歸時連同符號位進(jìn)位位一起右移左歸時,階碼作減法,右歸時,階碼作加法00.0XXXX

--

00.1XXX0

左規(guī)11.1XXXX

--

11.0XXX0

左規(guī)01.XXXXX

--

00.1XXXX

右規(guī)10.XXXXX

--

11.0XXXX

右規(guī)

規(guī)格化方法第二十一頁,共五十四頁,2022年,8月28日例:兩浮點數(shù)x=0.1101210,y=(0.1011)201,求x+y。解:[x]補=0010,00.1101[y]補=0001,00.1011

對階:

[△E]補=[Ex]補-[Ey]補=0010+1111=0001y向x對齊,將y的尾數(shù)右移一位,階碼加1。

[y]補=0010,00.0101

[x+y]補=0010,01.0010右歸:運算結(jié)果兩符號位不同,其絕對值大于1,右歸。

[x+y]補=0011,00.1001求和:

00.1101+00.010101.0010第二十二頁,共五十四頁,2022年,8月28日在對階或向右規(guī)格化時,尾數(shù)要向右移位,這樣,被右移的尾數(shù)的低位部分會被丟掉,從而造成一定誤差,因此要進(jìn)行舍入處理。

?

簡單的舍入方法有兩種:①“0舍1入”法即如果右移時被丟掉數(shù)位的最高位為0則舍去,反之則將尾數(shù)的末位加“1”。②“恒置1”法即只要數(shù)位被移掉,就在尾數(shù)的末位恒置“1”。從概率上來說,丟掉的0和1各為1/2。(5)舍入處理第二十三頁,共五十四頁,2022年,8月28日在IEEE754標(biāo)準(zhǔn)中,舍入處理提供了四種可選方法:就近舍入其實質(zhì)就是通常所說的"四舍五入"。例如,尾數(shù)超出規(guī)定的23位的多余位數(shù)字是10010,多余位的值超過規(guī)定的最低有效位值的一半,故最低有效位應(yīng)增1。若多余的5位是01111,則簡單的截尾即可。對多余的5位10000這種特殊情況:若最低有效位現(xiàn)為0,則截尾;若最低有效位現(xiàn)為1,則向上進(jìn)一位使其變?yōu)?。朝0舍入即朝數(shù)軸原點方向舍入,就是簡單的截尾。無論尾數(shù)是正數(shù)還是負(fù)數(shù),截尾都使取值的絕對值比原值的絕對值小。這種方法容易導(dǎo)致誤差積累。朝+∞舍入對正數(shù)來說,只要多余位不全為0則向最低有效位進(jìn)1;對負(fù)數(shù)來說則是簡單的截尾。朝-∞舍入處理方法正好與朝+∞舍入情況相反。對正數(shù)來說,只要多余位不全為0則簡單截尾;對負(fù)數(shù)來說,向最低有效位進(jìn)1。第二十四頁,共五十四頁,2022年,8月28日(6)溢出處理與定點加減法一樣,浮點加減運算最后一步也需判溢出。在浮點規(guī)格化中已指出,當(dāng)尾數(shù)之和(差)出現(xiàn)01.××…×或10.××…×?xí)r,并不表示溢出,只有將此數(shù)右規(guī)后,再根據(jù)階碼來判斷浮點運算結(jié)果是否溢出。若機器數(shù)為補碼,尾數(shù)為規(guī)格化形式,并假設(shè)階符取2位,階碼取7位、數(shù)符取2位,尾數(shù)取n位,則它們能表示的補碼在數(shù)軸上的表示范圍如圖所示。正負(fù)第二十五頁,共五十四頁,2022年,8月28日圖中A,B,a,b分別對應(yīng)最小負(fù)數(shù)、最大正數(shù)、最大負(fù)數(shù)和最小正數(shù)。它們所對應(yīng)的真值分別是:

A最小負(fù)數(shù)

2+127(-1)B最大正數(shù)

2+127(1-2-n)a最大負(fù)數(shù)

2-128(-2-1-2-n)b最小正數(shù)

2-128

2-1正負(fù)最小負(fù)數(shù)最大正數(shù)最大負(fù)數(shù)最小正數(shù)第二十六頁,共五十四頁,2022年,8月28日圖中a,b之間的陰影部分,對應(yīng)階碼小于128的情況,叫做浮點數(shù)的下溢。下溢時.浮點數(shù)值趨于零,故機器不做溢出處理,僅把它作為機器零。圖中的A、B兩側(cè)陰影部分,對應(yīng)階碼大于127的情況,叫做浮點數(shù)的上溢。此刻,浮點數(shù)真正溢出,機器需停止運算,作溢出中斷處理。一般說浮點溢出,均是指上溢。

可見,浮點機的溢出與否可由階碼的符號決定:

階碼[j]補=01,為上溢,機器停止運算,做中斷處理;階碼[j]補=10,為下溢,按機器零處理。正負(fù)第二十七頁,共五十四頁,2022年,8月28日例:若某次加法操作的結(jié)果為[X+Y]補=11.010,00.0000110111則應(yīng)對其進(jìn)行向左規(guī)格化操作:尾數(shù)為:00.1101110000,階碼減4:

11.010+11.100[-4]補

10.110例:若某次加法操作的結(jié)果為[X+Y]補=00.111,10.1011100111則應(yīng)對其進(jìn)行向右規(guī)格化操作:尾數(shù)為:11.0101110011,階碼加1:01.000

階碼超出了它所能表示的最大正數(shù)(+7),表明本次浮點運算產(chǎn)生了溢出。階碼超出了它所能表示的最小負(fù)數(shù)(-8),表明本次浮點運算產(chǎn)生了溢出。第二十八頁,共五十四頁,2022年,8月28日例:兩浮點數(shù)x=2101×0.11011011,

y=2111×(-0.10101100)。假設(shè)尾數(shù)在計算機中以補碼表示,可存儲10位尾數(shù),2位符號位,階碼以補碼表示,雙符號位,求x+y。解:將x,y轉(zhuǎn)換成浮點數(shù)據(jù)格式

[x]浮

=00101,00.11011011[Y]浮

=00111,11.01010011+100111,11.01010100步驟1:對階,階差為Ex-Ey=[Ex]補+[-Ey]補

[-Ey]補=11000+1=11001Ex-Ey=00101+11001=11110

=-(00001+1)=-00010=-2<0Ex-Ey<0Ex<Ey小階對大階,

X階碼加2X尾數(shù)右移2位第二十九頁,共五十四頁,2022年,8月28日解:將x,y轉(zhuǎn)換成浮點數(shù)據(jù)格式

[x]浮

=00101,00.11011011[Y]浮

=00111,11.01010011+100111,11.01010100步驟1:對階,階差為Ex-Ey=[Ex]補+[-Ey]補

Ex-Ey=-2<0Ex-Ey<0Ex<Ey小階對大階,

X階碼加2X尾數(shù)右移2位

[x]浮

=00111,00.00110110(11)步驟2:尾數(shù)求和

[X+Y]浮=00111,00.00110110(11)+00111,11.01010100=00111,11.10001010(11)第三十頁,共五十四頁,2022年,8月28日步驟2:尾數(shù)求和

[X+Y]浮=00111,00.00110110(11)+00111,11.01010100=00111,11.10001010(11)步驟3:計算結(jié)果規(guī)格化

[X+Y]浮為非規(guī)格化數(shù),左歸一位,階碼減一,

00110,11.00010101(1)步驟4:舍入處理

[X+Y]浮=00110,11.00010110(0舍1如法)[X+Y]浮=00110,11.00010101(截去法)步驟5:溢出判斷

無溢出

[X+Y]浮=2110x(-00.11101011)第三十一頁,共五十四頁,2022年,8月28日第三十二頁,共五十四頁,2022年,8月28日例

設(shè)x=20100.11011011,y=2100(-0.10101100),求x+y。解:階碼采用雙符號位,尾數(shù)采用單符號位,則它們的浮點表示分別為[x]浮=00010,

0.11011011

[y]浮=00100,

1.01010100(1)求階差并對階△E=Ex-

Ey=[Ex]補+[-Ey]補=00010+11100=11110[x]浮=00100,0.00110110(11)其中(11)表示Mx右移2位后移出的最低兩位數(shù)。即△E為-2,x的階碼小,應(yīng)使Mx右移兩位,Ex加2,第三十三頁,共五十四頁,2022年,8月28日(2)尾數(shù)求和(4)舍入處理采用0舍1入法處理,則有:

1.00010101+11.00010110

0.00110110(11)+1.01010100

1.10001010(11)(3)規(guī)格化處理尾數(shù)運算結(jié)果的符號位與最高數(shù)值位為同值,應(yīng)執(zhí)行左規(guī)處理,結(jié)果為1.00010101(10),階碼為00011。(5)判斷溢出階碼符號位為00,不溢出,故得最終結(jié)果為

x+y=2011×(-0.11101010)第三十四頁,共五十四頁,2022年,8月28日例:兩浮點數(shù)x=201×0.1101,y=211×(-0.1010)。假設(shè)尾數(shù)在計算機中以補碼表示,可存儲4位尾數(shù),2位保護位,階碼以原碼表示,求x+y。解:將x,y轉(zhuǎn)換成浮點數(shù)據(jù)格式

[x]浮

=0001,00.1101 [y]浮

=0011,11.0110步驟1:對階,階差為11-01=10,即2,因此將x的尾數(shù)右移兩位,得

[x]浮

=0011,00.001101步驟2:對尾數(shù)求和,得: [x+y]浮

=0011,11.100101步驟3:由于符號位和第一位數(shù)相等,不是規(guī)格化數(shù),向左規(guī)格化,得

[x+y]浮

=0010,11.001010步驟4:截去。

[x+y]浮

=0010,11.0010步驟5:數(shù)據(jù)無溢出,因此結(jié)果為

x+y=210×(-0.1110)第三十五頁,共五十四頁,2022年,8月28日浮點乘除法運算1.浮點乘法、除法運算規(guī)則設(shè)有兩個浮點數(shù)x和y:x=2Ex·Mx

y=2Ey·My浮點乘法運算的規(guī)則是:xy=2(Ex+Ey)·(Mx

My)

即:乘積的尾數(shù)是相乘兩數(shù)的尾數(shù)之積;

乘積的階碼是相乘兩數(shù)的階碼之和。浮點除法運算的規(guī)則是:

x÷y=2(Ex-Ey)·(Mx÷My)

即:商的尾數(shù)是相除兩數(shù)的尾數(shù)之商;

商的階碼是相除兩數(shù)的階碼之差。第三十六頁,共五十四頁,2022年,8月28日2.浮點乘、除法運算步驟浮點數(shù)的乘除運算大體分為四步:(1)0操作數(shù)檢查;(2)階碼加/減操作;(3)尾數(shù)乘/除操作;(4)結(jié)果規(guī)格化及舍入處理。第三十七頁,共五十四頁,2022年,8月28日(2)浮點數(shù)的階碼運算

?

對階碼的運算有+1、-1、兩階碼求和、兩階碼求差四種,運算時還必須檢查結(jié)果是否溢出。

?在計算機中,階碼通常用補碼或移碼形式表示。①移碼的運算規(guī)則和判定溢出的方法移碼的定義為[x]移=2n+x-2n

≤x<2n[x]移+[y]移=2n+x+2n+y=2n+[x+y]移按此定義,則有=2n+(2n+(x+y))[x+y]移=-2n+[x]移+[y]移第三十八頁,共五十四頁,2022年,8月28日考慮到移碼和補碼的關(guān)系:

對同一個數(shù)值,其數(shù)值位完全相同,而符號位正好完全相反。

[y]補的定義為

[y]補=2n+1+y則求階碼和用如下方式完成:

=2n+1+(2n+(x+y))[x]移+[y]補=2n+x+2n+1+y即:[x+y]移=[x]移+[y]補

(mod2n+1)同理:[x-y]移=[x]移+[-y]補

(mod2n+1)②混合使用移碼和補碼第三十九頁,共五十四頁,2022年,8月28日

使用雙符號位的階碼加法器,并規(guī)定移碼的第二個符號位,即最高符號位恒用0參加加減運算,則溢出條件是結(jié)果的最高符號位為1:

?當(dāng)?shù)臀环栁粸?時,(10)表明結(jié)果上溢,

?當(dāng)?shù)臀环栁粸?時,(11)表明結(jié)果下溢。

?當(dāng)最高符號位為0時,表明沒有溢出:

低位符號位為1,(01)表明結(jié)果為正;

為0,(00)表明結(jié)果為負(fù)。③階碼運算結(jié)果溢出處理第四十頁,共五十四頁,2022年,8月28日例:x=+011,y=+110,求[x+y]移和[x-y]移,并判斷是否溢出。解:階碼取3位(不含符號位),其對應(yīng)的真值范圍是-8~+7[x]移=01011,[y]補=00110,[-y]補=11010[x+y]移=[x]移+[y]補=[x-y]移=[x]移+[-y]補=

01011+0011010001結(jié)果上溢。結(jié)果正確,為-3。

01011+1101000101第四十一頁,共五十四頁,2022年,8月28日(3)尾數(shù)處理浮點加減法對結(jié)果的規(guī)格化及舍入處理也適用于浮點乘除法。第一種方法是:無條件地丟掉正常尾數(shù)最低位之后的全部數(shù)值。這種辦法被稱為截斷處理,好處是處理簡單,缺點是影響結(jié)果的精度。

第二種辦法是:運算過程中保留右移中移出的若干高位的值,最后再按某種規(guī)則用這些位上的值修正尾數(shù)。這種處理方法被稱為舍入處理。第四十二頁,共五十四頁,2022年,8月28日?當(dāng)尾數(shù)用原碼表示時:

最簡便的方法是,只要尾數(shù)的最低位為1,或移出的幾位中有為1的數(shù)值位,就使最低位的值為1。另一種是0舍1入法,即當(dāng)丟失的最高位的值為1時,把這個1加到最低數(shù)值位上進(jìn)行修正,否則舍去丟失的的各位的值。這樣處理時,舍入效果對正數(shù)負(fù)數(shù)相同,入將使數(shù)的絕對值變大,舍則使數(shù)的絕對值變小。舍入處理第四十三頁,共五十四頁,2022年,8月28日?當(dāng)尾數(shù)是用補碼表示時:

采用0舍1入法時,若丟失的位不全為0時:

對正數(shù)來說,舍入的結(jié)果與原碼分析相同;對負(fù)數(shù)來說,舍入的結(jié)果與原碼分析相反,即“舍”使絕對值變大,“入”使絕對值變?。粸槭乖⒀a碼舍入處理后的結(jié)果相同,對負(fù)數(shù)可采用如下規(guī)則進(jìn)行舍入處理:

當(dāng)丟失的各位均為0時,不必舍入;當(dāng)丟失的最高位為0,以下各位不全為0時,或者丟失的最高位為1,以下各位均為0時,則舍去丟失位上的值;當(dāng)丟失的最高位為1,以下各位不全為0時,則執(zhí)行在尾數(shù)最低位入1的修正操作。第四十四頁,共五十四頁,2022年,8月28日例:

設(shè)[x1]補=11.01100000,[x2]補=11.01100001,[x3]補=11.01101000,[x4]補=11.01111001,求執(zhí)行只保留小數(shù)點后4位有效數(shù)字的舍入操作值。解:執(zhí)行舍入操作后,其結(jié)果值分別為

[x1]補=11.0110

(不舍不入)

[x2]補=11.0110

(舍)

[x3]補=11.0110

(舍)

[x4]補=11.1000

(入)第四十五頁,共五十四頁,2022年,8月28日例:設(shè)有浮點數(shù)x=2-50.0110011,y=23(-0.1110010),階碼用4位移碼表示,尾數(shù)(含符號位)用8位補碼表示。求[xy]浮。要求用補碼完成尾數(shù)乘法運算,運算結(jié)果尾數(shù)保留高8位(含符號位),并用尾數(shù)低位字長值處理舍入操作。解:移碼采用雙符號位,尾數(shù)補碼采用單符號位,則有

[Mx]補=0.0110011,[My]補=1.0001110,

[Ex]移=00011,

[Ey]移=01011,[Ey]補=00011,

[x]?。?0011,0.0110011,[y]?。?1011,1.0001110第四十六頁,共五十四頁,2022年,8月28日(2)尾數(shù)乘法運算

可采用補碼陣列乘法器實現(xiàn),即有(1)求階碼和[Ex+Ey]移=[Ex]移+[Ey]補=00011+00011=00110,值為移碼形式-2。[Mx]補[My]補=[0.0110011]補[1.0001110]補=[1.1010010,1001010]補第四十七頁,共五十四頁,2022年,8月28日(4)舍入處理(3)規(guī)格化處理乘積的尾數(shù)符號位與最高數(shù)值位符號相同,不是規(guī)格化的數(shù),需要左規(guī),階碼變?yōu)?0101(-3),尾數(shù)變?yōu)?.0100101,0010100。尾數(shù)為負(fù)數(shù),取尾數(shù)高位字長,按舍入規(guī)則,舍去低位字長,故尾數(shù)為1.0100101。最終相乘結(jié)果為其真值為xy=2-3(-0.1011011)[xy]?。?0101,1.0100101第四十八頁,共五十四頁,2022年,8月28日由于浮點運算分成階碼和尾數(shù)兩部分,因此浮點運算器的實現(xiàn)比定點運算器復(fù)雜得多。分析上述的浮點四則運算可以發(fā)現(xiàn),對于階碼只有加減運算,對于尾數(shù)則有加、減、乘、除4種運算??梢姼↑c運算器主要由兩個定點運算部件組成,一個是階碼運算部件,用來完成階碼加、減,以及控制對階時小階的尾數(shù)右移次數(shù)和規(guī)格化時對階碼的調(diào)整;另—個是尾數(shù)運算部件,用來完成尾數(shù)的四則運算以及判斷尾數(shù)是否已規(guī)格化。此外,還需要有溢出判斷電路

溫馨提示

  • 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

提交評論