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

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)組成原理Friday,September29,2023浮點(diǎn)數(shù)表示及運(yùn)算一、浮點(diǎn)數(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任意一個(gè)十進(jìn)制數(shù)N可以寫成N=10E·×M

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

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

e:浮點(diǎn)的指數(shù),是一個(gè)整數(shù)。

R:基數(shù),對(duì)于二進(jìn)計(jì)數(shù)值的機(jī)器是一個(gè)常數(shù),一般規(guī)定R為2,8或16浮點(diǎn)數(shù)的表示范圍負(fù)上溢-+

負(fù)數(shù)正數(shù)0正上溢負(fù)下溢正下溢N=2E×M|N|→∞產(chǎn)生正上溢或者負(fù)上溢|N|→0產(chǎn)生正下溢或者負(fù)下溢尾數(shù):用定點(diǎn)小數(shù)表示,給出有效數(shù)字的位數(shù),決定了浮點(diǎn)數(shù)的表示精度階碼:用定點(diǎn)整數(shù)形式表示,指明小數(shù)點(diǎn)在數(shù)據(jù)中的位置,決定了浮點(diǎn)數(shù)的表示范圍。一個(gè)機(jī)器浮點(diǎn)數(shù)由階碼和尾數(shù)及其符號(hào)位組成:最大正數(shù)最小正數(shù)最小負(fù)數(shù)最大負(fù)數(shù)8位定點(diǎn)小數(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機(jī)器字長(zhǎng)一定時(shí),階碼越長(zhǎng),表示范圍越大,精度越低浮點(diǎn)數(shù)表示范圍比定點(diǎn)數(shù)大,精度高一個(gè)浮點(diǎn)數(shù)有不同的表示:0.5;0.05101;0.005102;5010-2為提高數(shù)據(jù)的表示精度,需做規(guī)格化處理。浮點(diǎn)數(shù)是數(shù)學(xué)中實(shí)數(shù)的子集合,由一個(gè)純小數(shù)乘上一個(gè)指數(shù)值來(lái)組成。二、浮點(diǎn)數(shù)規(guī)格化把不滿足這一表示要求的尾數(shù),變成滿足這一要求的尾數(shù)的操作過(guò)程,叫作浮點(diǎn)數(shù)的規(guī)格化處理,通過(guò)尾數(shù)移位和修改階碼實(shí)現(xiàn)。在計(jì)算機(jī)內(nèi),其純小數(shù)部分被稱為浮點(diǎn)數(shù)的尾數(shù),對(duì)非0值的浮點(diǎn)數(shù),要求尾數(shù)的絕對(duì)值必須>=1/2,即尾數(shù)域的最高有效位應(yīng)為1,稱滿足這種表示要求的浮點(diǎn)數(shù)為規(guī)格化表示:0.1000101010規(guī)格化目的:為了提高數(shù)據(jù)的表示精度為了數(shù)據(jù)表示的唯一性尾數(shù)為R進(jìn)制的規(guī)格化:絕對(duì)值大于或等于1/R二進(jìn)制原碼的規(guī)格化數(shù)的表現(xiàn)形式:

正數(shù)

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

1.0xxxxxx正數(shù)0.1xxxxxx負(fù)數(shù)1.1xxxxxx補(bǔ)碼尾數(shù)的規(guī)格化的表現(xiàn)形式:尾數(shù)的最高位與符號(hào)位相反。解:12310=11110112=0.11110110002×27

[7]移=10000+00111=10111 [0.1111011000]補(bǔ)=0.1111011000 [123]浮=10111

01111011000=BBD8H例:對(duì)數(shù)據(jù)12310作規(guī)格化浮點(diǎn)數(shù)的編碼,假定1位符號(hào)位,基數(shù)為2,階碼5位,采用移碼,尾數(shù)10位,采用補(bǔ)碼。S——尾數(shù)符號(hào),0正1負(fù);M——尾數(shù),純小數(shù)表示,小數(shù)點(diǎn)放在尾數(shù)域的最前面。采用原碼表示。E——階碼,采用“移碼”表示(移碼可表示階符);

階符采用隱含方式,即采用移碼方法來(lái)表示正負(fù)指數(shù)。SEM31302322032位SEM63625251064位為便于軟件移植,使用IEEE(電氣和電子工程師協(xié)會(huì))標(biāo)準(zhǔn)IEEE754

標(biāo)準(zhǔn):尾數(shù)用原碼;階碼用“移碼”;基為2。三、浮點(diǎn)數(shù)的標(biāo)準(zhǔn)格式IEEE754規(guī)格化浮點(diǎn)數(shù)的真值x=

(-1)s

(1.M)

2E-127e=E–127一個(gè)規(guī)格化的32位浮點(diǎn)數(shù)x的真值為:

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

x=(–1)s×(1.M)×2E-1023一個(gè)規(guī)格化的64位浮點(diǎn)數(shù)x的真值為:這里e是真值,E是機(jī)器數(shù)1.隱藏位技術(shù)2.階碼用“移碼”偏移值127而不是128Emin=1,Emax=254/2046原碼非0值浮點(diǎn)數(shù)的尾數(shù)數(shù)值最高位必定為1,則在保存浮點(diǎn)數(shù)到內(nèi)存前,通過(guò)尾數(shù)左移,強(qiáng)行把該位去掉,用同樣多的位數(shù)能多存一位二進(jìn)制數(shù),有利于提高數(shù)據(jù)表示精度,稱這種處理方案使用了隱藏位技術(shù)。當(dāng)然,在取回這樣的浮點(diǎn)數(shù)到運(yùn)算器執(zhí)行運(yùn)算時(shí),必須先恢復(fù)該隱藏位。例:若浮點(diǎn)數(shù)x的二進(jìn)制存儲(chǔ)格式為(41360000)16,求其32位浮點(diǎn)數(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例:將十進(jìn)制數(shù)20.59375轉(zhuǎn)換成32位浮點(diǎn)數(shù)的二進(jìn)制格式來(lái)存儲(chǔ)。解:首先分別將整數(shù)和分?jǐn)?shù)部分轉(zhuǎn)換成二進(jìn)制數(shù):

20.59375=10100.10011然后移動(dòng)小數(shù)點(diǎn),使其在第1,2位之間10100.10011=1.010010011×24

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

01000001

101001001100000000000000=(41A4C000)16

解:-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)代碼。單精度浮點(diǎn)數(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ù)階碼符號(hào)位IEEE754規(guī)格化浮點(diǎn)數(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單精度最大值最小值格式設(shè)有兩個(gè)浮點(diǎn)數(shù)x和y,它們分別為:浮點(diǎn)加減法運(yùn)算其中Ex和Ey分別為數(shù)x和y的階碼,Mx和My為數(shù)x和y的尾數(shù)。兩浮點(diǎn)數(shù)進(jìn)行加法和減法的運(yùn)算規(guī)則是:x±y=(Mx2Ex-Ey±My)2EyEx<=Ey

x=2Ex·Mxy=2Ey·My完成浮點(diǎn)加減運(yùn)算的操作過(guò)程大體分為:(1)0操作數(shù)的檢查;(2)比較階碼大小并完成對(duì)階;(3)尾數(shù)進(jìn)行加或減運(yùn)算;(4)結(jié)果規(guī)格化。(5)舍入處理。(6)溢出處理。使二數(shù)階碼相同(即小數(shù)點(diǎn)位置對(duì)齊),這個(gè)過(guò)程叫作對(duì)階。

?先求兩數(shù)階碼Ex和Ey之差,即△E=Ex-Ey

若△E=0,表示

Ex=Ey若△E>0,Ex>Ey若△E<0,Ex<Ey通過(guò)尾數(shù)的移動(dòng)來(lái)改變Ex或Ey,使其相等。

?對(duì)階原則

階碼小的數(shù)向階碼大的數(shù)對(duì)齊;對(duì)階過(guò)程小階的尾數(shù)右移,每右移一位,其階碼加1(右規(guī))。(2)對(duì)階(1)0操作數(shù)檢查

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

28*(11.000)11.000+0.00110?????????小階對(duì)大階28*(0.00110)--

210*(0.00001)0.00001+0.11000=0.11001例:x=201×0.1101,y=211×(-0.1010),求x+y=?解:為便于直觀了解,兩數(shù)均以補(bǔ)碼表示,階碼、尾數(shù)均采用雙符號(hào)位。[x]補(bǔ)=0001,00.1101[y]補(bǔ)=0011,11.0110[△E]補(bǔ)=[Ex]補(bǔ)-[Ey]補(bǔ)=0001+1101=1110

△E=-2,表示Ex比Ey小2,因此將x的尾數(shù)右移兩位.右移一位,得[x]補(bǔ)=0010,00.0110

再右移一位,得[x]補(bǔ)=0011,00.0011至此,△E=0,對(duì)階完畢.

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

對(duì)尾數(shù)求和:00.0011+11.011011.1001即得:[x+y]補(bǔ)=0011,11.1001(3)尾數(shù)求和運(yùn)算(4)結(jié)果規(guī)格化求和之后得到的數(shù)可能不是規(guī)格化了的數(shù),為了增加有效數(shù)字的位數(shù),提高運(yùn)算精度,必須將求和的結(jié)果規(guī)格化。①規(guī)格化的定義:

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

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

負(fù)數(shù):S=1.1×××…×規(guī)格化規(guī)則運(yùn)算結(jié)果產(chǎn)生溢出時(shí),必須進(jìn)行右歸如變形補(bǔ)碼結(jié)果出現(xiàn)10.XX或者01.XXX如運(yùn)算結(jié)果出現(xiàn)0.0XXX或1.1XX必須左歸左歸時(shí)最低數(shù)據(jù)有效位補(bǔ)0右歸時(shí)連同符號(hào)位進(jìn)位位一起右移左歸時(shí),階碼作減法,右歸時(shí),階碼作加法00.0XXXX

--

00.1XXX0

左規(guī)11.1XXXX

--

11.0XXX0

左規(guī)01.XXXXX

--

00.1XXXX

右規(guī)10.XXXXX

--

11.0XXXX

右規(guī)

規(guī)格化方法例:兩浮點(diǎn)數(shù)x=0.1101210,y=(0.1011)201,求x+y。解:[x]補(bǔ)=0010,00.1101[y]補(bǔ)=0001,00.1011對(duì)階:

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

[x+y]補(bǔ)=0010,01.0010右歸:運(yùn)算結(jié)果兩符號(hào)位不同,其絕對(duì)值大于1,右歸。[x+y]補(bǔ)=0011,00.1001求和:00.1101+00.010101.0010在對(duì)階或向右規(guī)格化時(shí),尾數(shù)要向右移位,這樣,被右移的尾數(shù)的低位部分會(huì)被丟掉,從而造成一定誤差,因此要進(jìn)行舍入處理。

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

可見,浮點(diǎn)機(jī)的溢出與否可由階碼的符號(hào)決定:

階碼[j]補(bǔ)=01,

為上溢,機(jī)器停止運(yùn)算,做中斷處理;階碼[j]補(bǔ)=10,

為下溢,按機(jī)器零處理。正負(fù)例:若某次加法操作的結(jié)果為[X+Y]補(bǔ)=11.010,00.0000110111則應(yīng)對(duì)其進(jìn)行向左規(guī)格化操作:尾數(shù)為:00.1101110000,階碼減4:

11.010+11.100[-4]補(bǔ)10.110例:若某次加法操作的結(jié)果為[X+Y]補(bǔ)=00.111,10.1011100111則應(yīng)對(duì)其進(jìn)行向右規(guī)格化操作:尾數(shù)為:11.0101110011,階碼加1:01.000階碼超出了它所能表示的最大正數(shù)(+7),表明本次浮點(diǎn)運(yùn)算產(chǎn)生了溢出。階碼超出了它所能表示的最小負(fù)數(shù)(-8),表明本次浮點(diǎn)運(yùn)算產(chǎn)生了溢出。例:兩浮點(diǎn)數(shù)x=2101×0.11011011,

y=2111×(-0.10101100)。假設(shè)尾數(shù)在計(jì)算機(jī)中以補(bǔ)碼表示,可存儲(chǔ)10位尾數(shù),2位符號(hào)位,階碼以補(bǔ)碼表示,雙符號(hào)位,求x+y。解:將x,y轉(zhuǎn)換成浮點(diǎn)數(shù)據(jù)格式[x]浮=00101,00.11011011[Y]浮=00111,11.01010011+100111,11.01010100步驟1:對(duì)階,階差為Ex-Ey=[Ex]補(bǔ)+[-Ey]補(bǔ)

[-Ey]補(bǔ)=11000+1=11001Ex-Ey=00101+11001=11110=-(00001+1)=-00010=-2<0Ex-Ey<0Ex<Ey小階對(duì)大階,X階碼加2X尾數(shù)右移2位解:將x,y轉(zhuǎn)換成浮點(diǎn)數(shù)據(jù)格式[x]浮

=00101,00.11011011[Y]浮=00111,11.01010011+100111,11.01010100步驟1:對(duì)階,階差為Ex-Ey=[Ex]補(bǔ)+[-Ey]補(bǔ)

Ex-Ey=-2<0Ex-Ey<0Ex<Ey小階對(duì)大階,X階碼加2X尾數(shù)右移2位[x]浮=00111,00.00110110(11)步驟2:尾數(shù)求和[X+Y]浮=00111,00.00110110(11)+00111,11.01010100=00111,11.10001010(11)步驟2:尾數(shù)求和[X+Y]浮=00111,00.00110110(11)+00111,

溫馨提示

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

評(píng)論

0/150

提交評(píng)論