浮點(diǎn)數(shù)的表示格式規(guī)格化IEEE754課件_第1頁(yè)
浮點(diǎn)數(shù)的表示格式規(guī)格化IEEE754課件_第2頁(yè)
浮點(diǎn)數(shù)的表示格式規(guī)格化IEEE754課件_第3頁(yè)
浮點(diǎn)數(shù)的表示格式規(guī)格化IEEE754課件_第4頁(yè)
浮點(diǎn)數(shù)的表示格式規(guī)格化IEEE754課件_第5頁(yè)
已閱讀5頁(yè),還剩69頁(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)介

問(wèn)題寫(xiě)出+0.125,-0.125的補(bǔ)碼和移碼表示。為什么用補(bǔ)碼,移碼?如何表示即有整數(shù)又有小數(shù)的數(shù)值數(shù)據(jù),如12.25?12.25用浮點(diǎn)數(shù)怎么表示?為什么要對(duì)浮點(diǎn)數(shù)進(jìn)行規(guī)格化?問(wèn)題寫(xiě)出+0.125,-0.125的補(bǔ)碼和移碼表示。為什么引入定點(diǎn)表示法的特點(diǎn)定點(diǎn)數(shù)表示數(shù)的范圍受字長(zhǎng)限制,表示數(shù)的范圍有限;定點(diǎn)表示的精度有限;機(jī)器中,常用定點(diǎn)數(shù)表示純整數(shù)和純小數(shù),表示即有整數(shù)又有小數(shù)時(shí)比較麻煩。引入定點(diǎn)表示法的特點(diǎn)Lecture

3浮點(diǎn)數(shù)表示Lecture3浮點(diǎn)數(shù)表示課程結(jié)構(gòu)計(jì)算機(jī)系統(tǒng)統(tǒng)計(jì)硬件運(yùn)算器數(shù)據(jù)表示數(shù)據(jù)數(shù)據(jù)定點(diǎn)原碼反碼補(bǔ)碼移碼浮點(diǎn)一般表示規(guī)格化IEEE754非數(shù)值數(shù)據(jù)校驗(yàn)碼運(yùn)算方法運(yùn)算器存儲(chǔ)器控制器總線輸入輸出軟硬件接口軟件課程結(jié)構(gòu)計(jì)算機(jī)系統(tǒng)統(tǒng)計(jì)硬件運(yùn)算器數(shù)據(jù)表示數(shù)據(jù)數(shù)據(jù)定點(diǎn)原碼反碼主要內(nèi)容浮點(diǎn)數(shù)的表示格式規(guī)格化IEEE754主要內(nèi)容浮點(diǎn)數(shù)的表示格式浮點(diǎn)數(shù)的表示格式

對(duì)任意一個(gè)二進(jìn)制數(shù)N,總可以寫(xiě)成:N=2E×M,式中:

E為數(shù)N的階碼,M為數(shù)N的尾數(shù);可見(jiàn)浮點(diǎn)數(shù)是由階碼和尾數(shù)兩個(gè)部分組成的。浮點(diǎn)數(shù)在計(jì)算機(jī)中的表示格式如下:或浮點(diǎn)數(shù)的表示格式對(duì)任意一個(gè)二進(jìn)制數(shù)N,總可以寫(xiě)成:NMs

代表浮點(diǎn)數(shù)的符號(hào)n

其位數(shù)反映浮點(diǎn)數(shù)的精度k

其位數(shù)反映浮點(diǎn)數(shù)的表示范圍Es

和k

共同表示小數(shù)點(diǎn)的實(shí)際位置Es

Ek-1

E1E0

Ms

Mn-1

M1M0

……E

階碼M

尾數(shù)階符數(shù)符階碼的數(shù)值部分尾數(shù)的數(shù)值部分小數(shù)點(diǎn)位置浮點(diǎn)數(shù)的表示格式Ms代表浮點(diǎn)數(shù)的符號(hào)nx=–1110100000例將–58表示成二進(jìn)制定點(diǎn)數(shù)和浮點(diǎn)數(shù),并寫(xiě)出它在16位定點(diǎn)機(jī)中的三種機(jī)器數(shù)和浮點(diǎn)機(jī)中階碼為移碼、尾數(shù)為補(bǔ)碼的形式(尾數(shù)10位,尾符1位,階碼含階符5位)。解:二進(jìn)制形式定點(diǎn)表示浮點(diǎn)形式[x]原

=1,0000000

00111010[x]補(bǔ)

=1,1111111

11000110[x]反

=1,1111111

11000101[階]原

=0,0110[階]補(bǔ)=0,0110[階]移=1,0110定點(diǎn)機(jī)中浮點(diǎn)機(jī)中[x]階移、尾補(bǔ)

=1,0110;1.0001100000x=–111010x=–(0.1110100000)×2110[尾]原

=1.1110100000[尾]補(bǔ)

=1.0001100000存放在存儲(chǔ)器中形式為B460Hx=–1110100000例將主要內(nèi)容浮點(diǎn)數(shù)的表示格式規(guī)格化IEEE754主要內(nèi)容浮點(diǎn)數(shù)的表示格式①原碼規(guī)格化后的尾數(shù)正數(shù)為0.1×…×的形式負(fù)數(shù)為1.1×…×的形式②補(bǔ)碼規(guī)格化后的尾數(shù)正數(shù)為0.1×…×的形式負(fù)數(shù)為1.0×…×的形式規(guī)格化同一個(gè)浮點(diǎn)數(shù)表示不唯一,如:1.11×20,

0.111×21使|x|>=0.5(不絕對(duì),如尾數(shù)1.10000B表示-0.5,但不是規(guī)格化的①原碼規(guī)格化后的尾數(shù)正數(shù)為0.1×…×的形式規(guī)格化同例將下列十進(jìn)制數(shù)表示成浮點(diǎn)規(guī)格化數(shù),階碼4位(含符號(hào)),分別用補(bǔ)碼和移碼表示;尾數(shù)6位(含符號(hào)),用補(bǔ)碼表示(要求規(guī)格化)。

①19/512②-19/512

解:①19/512=10011×2-9=0.10011×2-4

階碼用補(bǔ)碼表示為:1100010011

階碼用移碼表示為:0100010011②-19/512=-10011×2-9=-0.10011×2-4

階碼用補(bǔ)碼表示為:1100101101

階碼用移碼表示為:0100101101例將下列十進(jìn)制數(shù)表示成浮點(diǎn)規(guī)格化數(shù),階碼4位(含符號(hào)),分例設(shè)浮點(diǎn)數(shù)的的階碼6位(含符號(hào)位),尾數(shù)為10位(含符號(hào)位),階碼和尾數(shù)都用補(bǔ)碼表示,求其表示范圍(規(guī)格化)。表示范圍【例題分析】

階碼范圍:

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

最大負(fù)數(shù)

最小正數(shù)

最大正數(shù)

0

二進(jìn)制補(bǔ)碼100000

111111

000001

011111

十進(jìn)制真值

-25=-32-1

+1

25-1=31

例設(shè)浮點(diǎn)數(shù)的的階碼6位(含符號(hào)位),尾數(shù)為10位(含符號(hào)注意:這里規(guī)格化尾數(shù)的最大負(fù)數(shù)的補(bǔ)碼是1.01…1的形式,而不是1.11…1的形式,是因?yàn)?.11…1不是規(guī)格化數(shù),所以規(guī)格化尾數(shù)的最大負(fù)數(shù)應(yīng)是:-0.10…01,(-0.10…1)補(bǔ)=1.01…1即:-(2-(n-1)+2-1)表示范圍②

規(guī)格化尾數(shù)表示范圍如下:

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

最大負(fù)數(shù)

最小正數(shù)

最大正數(shù)

0

二進(jìn)制補(bǔ)碼

1.0000000001.0111111110.1000000000.111111111

十進(jìn)制真值

-1-(2-9+2-1)

2-11-2-9

注意:這里規(guī)格化尾數(shù)的最大負(fù)數(shù)的補(bǔ)碼是1.01…1的形式,而浮點(diǎn)數(shù)的表示范圍:-231×1~231×(1-2-9)表示范圍浮點(diǎn)數(shù)的表示范圍:-231×1~231×(1-2-9)

根據(jù)以上分析若某機(jī)字長(zhǎng)為k+n,其中階碼k位(含一位符號(hào)位),尾數(shù)n位(含一位符號(hào)位);設(shè)a=2(k-1)-1(階碼的最大值)

b=-2(k-1)

(階碼的最小值)

則規(guī)格化數(shù)所能表示的范圍為:最大正數(shù):(1-2-(n-1))×2a

最小正數(shù):2-1×2b

最大負(fù)數(shù):-(2-(n-1)+2-1)×2b

(絕對(duì)值最小的負(fù)數(shù))最小負(fù)數(shù):-1×2a

(絕對(duì)值最大的負(fù)數(shù))階碼采用移碼不影響表示范圍,但機(jī)器數(shù)與補(bǔ)碼表示時(shí)不同浮點(diǎn)數(shù)的階碼決定了浮點(diǎn)數(shù)的表示范圍;浮點(diǎn)數(shù)的尾數(shù)決定了浮點(diǎn)數(shù)的表示精度。表示范圍根據(jù)以上分析若某機(jī)字長(zhǎng)為k+n,其中階碼k位(含一位練習(xí)

設(shè)機(jī)器數(shù)字長(zhǎng)為24位,欲表示±3萬(wàn)的十進(jìn)制數(shù),試問(wèn)在保證數(shù)的最大精度的前提下,除階符、數(shù)符各取1位外,階碼、尾數(shù)各取幾位?滿足最大精度可取

k=4,n=18解:…k=4,5,6,15

位二進(jìn)制數(shù)可反映±3萬(wàn)之間的十進(jìn)制數(shù)∴215

=32768214

=16384∵215×0.×××

×××?位…練習(xí)設(shè)機(jī)器數(shù)字長(zhǎng)為24位,欲表示±3萬(wàn)的十主要內(nèi)容浮點(diǎn)數(shù)的表示格式規(guī)格化IEEE754主要內(nèi)容浮點(diǎn)數(shù)的表示格式“Father”oftheIEEE754standard現(xiàn)在所有計(jì)算機(jī)都采用IEEE754來(lái)表示浮點(diǎn)數(shù)1970年代后期,IEEE成立委員會(huì)著手制定浮點(diǎn)數(shù)標(biāo)準(zhǔn)1985年完成浮點(diǎn)數(shù)標(biāo)準(zhǔn)IEEE754的制定Prof.WilliamKahan/~wkahan/ieee754status/754story.htmlThisstandardwasprimarilytheworkofoneperson,UCBerkeleymathprofessorWilliamKahan.

直到80年代初,各個(gè)機(jī)器內(nèi)部的浮點(diǎn)數(shù)表示格式還沒(méi)有統(tǒng)一因而相互不兼容,機(jī)器之間傳送數(shù)據(jù)時(shí),帶來(lái)麻煩

“Father”oftheIEEE754stand單精度格式:32位,符號(hào)位1位,階碼E=8位,尾數(shù)M=23位雙精度格式:64位,符號(hào)位1位,E=11位,M=52位1823S符號(hào)位EM階碼尾數(shù)32位單精度形式11152S符號(hào)位EM階碼尾數(shù)64位雙精度形式IEEE754標(biāo)準(zhǔn)浮點(diǎn)數(shù)表示單精度格式:32位,符號(hào)位1位,階碼E=8位,尾數(shù)M階碼用移碼、尾數(shù)用原碼,因?yàn)橐?guī)格化原碼尾數(shù)的最高為恒為1,為增加一位的精度,該1在尾數(shù)中不表示出來(lái),計(jì)算時(shí)在尾數(shù)前面自動(dòng)加1.IEEE754標(biāo)準(zhǔn)浮點(diǎn)數(shù)表示1823S符號(hào)位E1.M(原碼規(guī)格化)階碼尾數(shù)32位單精度形式單精度數(shù)所表示的數(shù)值為(-1)s×1.M×2e-127。雙精度數(shù)所表示的數(shù)值為(-1)s×1.M×2e-1023。其中:s=0表示正數(shù),s=1表示負(fù)數(shù);即,如果要表示一個(gè)數(shù),需要把該數(shù)寫(xiě)成:(-1)s×1.M×2(x)真值而規(guī)格化浮點(diǎn)數(shù)形式是:(-1)s×0.1M×2(128+x)移碼

=(-1)s×1.M×2(127+x)移碼相當(dāng)于此時(shí)移碼的計(jì)算不是加128,而是加127e=127+x階碼用移碼、尾數(shù)用原碼,因?yàn)橐?guī)格化原碼尾數(shù)的最高為恒為1,為幾個(gè)特殊數(shù)值:當(dāng)E的二進(jìn)制位全為1時(shí)為特殊數(shù)值:此時(shí),若M的二進(jìn)制位全為0,則n表示無(wú)窮大。若S為1則為負(fù)無(wú)窮大,若S為0則為正無(wú)窮大;若M的二進(jìn)制位不全為0時(shí),表示NaN(NotaNumber),表示這不是一個(gè)合法實(shí)數(shù)。E為全0時(shí):M全為0時(shí),表示機(jī)器0;M不全為0時(shí),表示非規(guī)格化的數(shù)。單精度數(shù)e的取值為1~254(8位表示),M為23位,共32位;雙精度數(shù)e的取值為1~2046(11位表示),M為52位,共64位。IEEE754標(biāo)準(zhǔn)浮點(diǎn)數(shù)表示幾個(gè)特殊數(shù)值:IEEE754標(biāo)準(zhǔn)浮點(diǎn)數(shù)表示例寫(xiě)出下列十進(jìn)制數(shù)據(jù)的IEEE754編碼①0.15625②-5

解:①0.15625轉(zhuǎn)換成二進(jìn)制值為0.00101,在IEEE754中規(guī)格化表示為1.01×2-3,e=127-3=124,IEEE754編碼為:0

01111100

01000000000000000000000②-5轉(zhuǎn)換成二進(jìn)制值為:-101在IEEE754中規(guī)格化表示為1.01×22,e=127+2=129,IEEE754編碼為:11000000101000000000000000000000

IEEE754標(biāo)準(zhǔn)浮點(diǎn)數(shù)表示例寫(xiě)出下列十進(jìn)制數(shù)據(jù)的IEEE754編碼IEEE754標(biāo)例將十進(jìn)制數(shù)9和5/32轉(zhuǎn)換為IEEE754標(biāo)準(zhǔn)的單精度數(shù),并用8位十六進(jìn)制表示解答(1)9=(-1)0×1001=(-1)0×23×1.001

=(-1)0×2130-127×1.001

二進(jìn)制代碼為:0

1000001000100000000000000000000即:41100000H解答(2)5/32=(-1)0×0101×2-5=(-1)0×2-5×22×1.01

=(-1)0×2124-127×1.01

二進(jìn)制代碼為:00111110001000000000000000000000即:3E200000HIEEE754標(biāo)準(zhǔn)浮點(diǎn)數(shù)表示例將十進(jìn)制數(shù)9和5/32轉(zhuǎn)換為IEEE754標(biāo)準(zhǔn)的單精例將IEEE754單精度數(shù)(8位十六進(jìn)制表示)轉(zhuǎn)換為十進(jìn)制數(shù)(1)C0A00000H(2)3F880000H解答(1)C0A00000H11000000101000000000000000000000(-1)1×(1.25)×2129-127=-1×1.25×22

=-1.25×4=-5.0解答(2)3F880000H0

0111111100010000000000000000000(-1)0×(1.0625)×2127-127=1×1.0625×20

=1.0625×1=1.0625

IEEE754標(biāo)準(zhǔn)浮點(diǎn)數(shù)表示例將IEEE754單精度數(shù)(8位十六進(jìn)制表示)轉(zhuǎn)換為十進(jìn)IEEE754的表示范圍(單精度)數(shù)符階碼尾數(shù)真值最大正數(shù)01111111011…11(2-2-23)×2127最小正數(shù)00000000100…001×2-126絕對(duì)值最大的負(fù)數(shù)(最小負(fù)數(shù))11111111011..11-(2-2-23)×2127絕對(duì)值最小的負(fù)數(shù)(最大負(fù)數(shù))10000000100..00-1×2-126IEEE754的表示范圍(單精度)數(shù)符階碼尾數(shù)真值最大正數(shù)0階碼用移碼表示的益處直接可以由移碼的表示形式看出對(duì)應(yīng)數(shù)值的大小(這里是把移碼當(dāng)做無(wú)符號(hào)數(shù)來(lái)比較大小的,而不必考慮符號(hào),這里比用補(bǔ)碼好多了,補(bǔ)碼是要變換成原碼再比較的)其次,用移碼表示的話,簡(jiǎn)化了對(duì)于“0”的判斷,即當(dāng)移碼的各位都為0的話,那么該移碼對(duì)應(yīng)的數(shù)據(jù)是能夠表示的數(shù)據(jù)中的最小值。階碼用移碼表示的益處直接可以由移碼的表示形式看出對(duì)應(yīng)數(shù)值的大小結(jié)理解規(guī)格化的意義、IEEE754表示中隱含隱含尾數(shù)最高拉的意義;給定一個(gè)真值,能用規(guī)格化浮點(diǎn)數(shù)表示該值(含IEEE754表示);給定一個(gè)浮點(diǎn)數(shù)表示的機(jī)器數(shù)(含IEEE754表示),能計(jì)算其真值。小結(jié)理解規(guī)格化的意義、IEEE754表示中隱含隱含尾數(shù)最高拉浮點(diǎn)數(shù)精度問(wèn)題1994年11月間各報(bào)紙有關(guān)Pentium處理器浮點(diǎn)瑕疵問(wèn)題的報(bào)告。Pentium芯片中浮點(diǎn)除法存在的問(wèn)題甚至上了電視節(jié)目David

Leeterman

Late

Show的十大新聞排行榜。為了換回所有問(wèn)題芯片,Intel一共為此損失了3億美元的資金。浮點(diǎn)數(shù)精度問(wèn)題1994年11月間各報(bào)紙有關(guān)Pentium處理浮點(diǎn)數(shù)的溢出浮點(diǎn)數(shù)的溢出作業(yè)33-1.將下列十進(jìn)制數(shù)表示成浮點(diǎn)規(guī)格化數(shù),階碼4位(含符號(hào)),分別用補(bǔ)碼和移碼表示;尾數(shù)6位(含符號(hào)),用補(bǔ)碼表示。(1)19/512(2)-19/5123-2.浮點(diǎn)數(shù)階碼4位(含階符),尾數(shù)9位(含數(shù)符),均用補(bǔ)碼表示,求用規(guī)格化和用非規(guī)格化表示時(shí)能夠表示的數(shù)值范圍。3-3.設(shè)浮點(diǎn)數(shù)的格式為:第15位為符號(hào)位,第14位到第8位為階碼,采用補(bǔ)碼表示;第7位到第0位為尾數(shù),與符號(hào)位一起采用規(guī)格化的補(bǔ)碼表示,基數(shù)為2。問(wèn):它能表示的正數(shù)和負(fù)數(shù)的數(shù)值范圍是什么?作業(yè)33-1.將下列十進(jìn)制數(shù)表示成浮點(diǎn)規(guī)格化數(shù),階碼4位(3-4.假定一臺(tái)32位字長(zhǎng)的機(jī)器中帶符號(hào)整數(shù)用補(bǔ)碼表示,浮點(diǎn)數(shù)用IEEE754標(biāo)準(zhǔn)表示,寄存器R1和R2的內(nèi)容分別為R1:0000108BH,R2:8080108BH。不同指令對(duì)寄存器進(jìn)行不同的操作,因而,不同指令執(zhí)行時(shí)寄存器內(nèi)容對(duì)應(yīng)的真值不同。假定執(zhí)行下列運(yùn)算指令時(shí),操作數(shù)為寄存器R1和R2的內(nèi)容,則R1和R2中操作數(shù)的分別是多少?

(1)無(wú)符號(hào)數(shù)加法指令

(2)帶符號(hào)數(shù)加法指令(定點(diǎn)整數(shù))

(3)帶符號(hào)數(shù)加法指令(定點(diǎn)小數(shù))

(3)單精度浮點(diǎn)數(shù)減法指令3-4.假定一臺(tái)32位字長(zhǎng)的機(jī)器中帶符號(hào)整數(shù)用補(bǔ)碼表示,浮3-5.float型整數(shù)據(jù)常用IEEE754單精度浮點(diǎn)格式表示,假設(shè)兩個(gè)float型變量x和y分別在32為寄存器f1和f2中,若(f1)=CC900000H,

(f2)=B0C00000H,則x和y之間的關(guān)系為

()

A

x<y且符號(hào)相同B

x<y且符號(hào)不同C

x>y且符號(hào)相同Dx>y且符號(hào)不同3-6.

float型數(shù)據(jù)通常用IEEE754單精度浮點(diǎn)數(shù)格式表示,若編譯器將float型變量x分配在一個(gè)32位浮點(diǎn)寄存器FR1中,且x=-8.25,則FR1的內(nèi)容是多少?3-5.float型整數(shù)據(jù)常用IEEE754單精度浮點(diǎn)格式3-7.以下是C語(yǔ)言程序,用來(lái)計(jì)算一個(gè)數(shù)組a中每個(gè)元素之和。當(dāng)參數(shù)len為0時(shí),返回值應(yīng)該是0,但在機(jī)器上執(zhí)行時(shí),卻發(fā)生了存儲(chǔ)器異常。分析原因并修改程序。

float

sum_elem(float

a[],

unsigned

len){

int

i;

float

result=0;

for

(i=0;i<=len-1;i++)

result+=a[i];

return

result;}3-7.以下是C語(yǔ)言程序,用來(lái)計(jì)算一個(gè)數(shù)組a中每個(gè)元素之和#include"stdafx.h"#include<iostream>usingnamespacestd;int_tmain(intargc,_TCHAR*argv[]){ floati=8.1,j=8.0; intk=0; while(i!=j) { i/=10;j/=10; k++;

} cout<<"float:"<<k<<endl; doublem=8.1,n=8.0; k=0; while(m!=n) { m/=10;n/=10; k++;

} cout<<"double:"<<k<<endl;}思考!提示:IEEE754中的最小正值附近:(1+2-23)×2(1-127)

,其精度約2-149約10-44.85#include"stdafx.h"思考!提示:IEEE7Questions?Questions?思考定點(diǎn)整數(shù)、小數(shù)有原碼、補(bǔ)碼表示形式,手工在紙上怎么加減?舉例分析(兩正數(shù)相加、兩負(fù)數(shù)相加、正負(fù)兩個(gè)數(shù)相加)。[x]原+[y]原=?[x+y]原;[x]原

+[-y]原=?[x-y]原[x]補(bǔ)+[y]補(bǔ)=?[x+y]補(bǔ);[x]補(bǔ)+[-y]補(bǔ)=?[x-y]補(bǔ)計(jì)算機(jī)中表示數(shù)據(jù)的寄存寄或存儲(chǔ)單元長(zhǎng)度固定,如果運(yùn)行結(jié)果超過(guò)這個(gè)長(zhǎng)度會(huì)產(chǎn)生什么結(jié)果?什么情況下會(huì)發(fā)生超出表示范圍的現(xiàn)象?這個(gè)結(jié)果能否被利用?試從計(jì)算機(jī)的角度來(lái)判斷運(yùn)算結(jié)果什么時(shí)候出錯(cuò)了?思考定點(diǎn)整數(shù)、小數(shù)有原碼、補(bǔ)碼表示形式,手工在紙上怎么加減?思考設(shè)X=-0.1010Y=0.0101求(X+Y)補(bǔ)和(X-Y)補(bǔ)設(shè)機(jī)器數(shù)字長(zhǎng)為8位(含1位符號(hào)位),且A=–97,B=+41,用補(bǔ)碼求A–B.自學(xué):非數(shù)值數(shù)據(jù)的表示、十進(jìn)制數(shù)的表示(特別是8421碼、余3碼、格雷碼表示的意義和作用)思考設(shè)X=-0.1010Y=0.0101求(X+Y)問(wèn)題寫(xiě)出+0.125,-0.125的補(bǔ)碼和移碼表示。為什么用補(bǔ)碼,移碼?如何表示即有整數(shù)又有小數(shù)的數(shù)值數(shù)據(jù),如12.25?12.25用浮點(diǎn)數(shù)怎么表示?為什么要對(duì)浮點(diǎn)數(shù)進(jìn)行規(guī)格化?問(wèn)題寫(xiě)出+0.125,-0.125的補(bǔ)碼和移碼表示。為什么引入定點(diǎn)表示法的特點(diǎn)定點(diǎn)數(shù)表示數(shù)的范圍受字長(zhǎng)限制,表示數(shù)的范圍有限;定點(diǎn)表示的精度有限;機(jī)器中,常用定點(diǎn)數(shù)表示純整數(shù)和純小數(shù),表示即有整數(shù)又有小數(shù)時(shí)比較麻煩。引入定點(diǎn)表示法的特點(diǎn)Lecture

3浮點(diǎn)數(shù)表示Lecture3浮點(diǎn)數(shù)表示課程結(jié)構(gòu)計(jì)算機(jī)系統(tǒng)統(tǒng)計(jì)硬件運(yùn)算器數(shù)據(jù)表示數(shù)據(jù)數(shù)據(jù)定點(diǎn)原碼反碼補(bǔ)碼移碼浮點(diǎn)一般表示規(guī)格化IEEE754非數(shù)值數(shù)據(jù)校驗(yàn)碼運(yùn)算方法運(yùn)算器存儲(chǔ)器控制器總線輸入輸出軟硬件接口軟件課程結(jié)構(gòu)計(jì)算機(jī)系統(tǒng)統(tǒng)計(jì)硬件運(yùn)算器數(shù)據(jù)表示數(shù)據(jù)數(shù)據(jù)定點(diǎn)原碼反碼主要內(nèi)容浮點(diǎn)數(shù)的表示格式規(guī)格化IEEE754主要內(nèi)容浮點(diǎn)數(shù)的表示格式浮點(diǎn)數(shù)的表示格式

對(duì)任意一個(gè)二進(jìn)制數(shù)N,總可以寫(xiě)成:N=2E×M,式中:

E為數(shù)N的階碼,M為數(shù)N的尾數(shù);可見(jiàn)浮點(diǎn)數(shù)是由階碼和尾數(shù)兩個(gè)部分組成的。浮點(diǎn)數(shù)在計(jì)算機(jī)中的表示格式如下:或浮點(diǎn)數(shù)的表示格式對(duì)任意一個(gè)二進(jìn)制數(shù)N,總可以寫(xiě)成:NMs

代表浮點(diǎn)數(shù)的符號(hào)n

其位數(shù)反映浮點(diǎn)數(shù)的精度k

其位數(shù)反映浮點(diǎn)數(shù)的表示范圍Es

和k

共同表示小數(shù)點(diǎn)的實(shí)際位置Es

Ek-1

E1E0

Ms

Mn-1

M1M0

……E

階碼M

尾數(shù)階符數(shù)符階碼的數(shù)值部分尾數(shù)的數(shù)值部分小數(shù)點(diǎn)位置浮點(diǎn)數(shù)的表示格式Ms代表浮點(diǎn)數(shù)的符號(hào)nx=–1110100000例將–58表示成二進(jìn)制定點(diǎn)數(shù)和浮點(diǎn)數(shù),并寫(xiě)出它在16位定點(diǎn)機(jī)中的三種機(jī)器數(shù)和浮點(diǎn)機(jī)中階碼為移碼、尾數(shù)為補(bǔ)碼的形式(尾數(shù)10位,尾符1位,階碼含階符5位)。解:二進(jìn)制形式定點(diǎn)表示浮點(diǎn)形式[x]原

=1,0000000

00111010[x]補(bǔ)

=1,1111111

11000110[x]反

=1,1111111

11000101[階]原

=0,0110[階]補(bǔ)=0,0110[階]移=1,0110定點(diǎn)機(jī)中浮點(diǎn)機(jī)中[x]階移、尾補(bǔ)

=1,0110;1.0001100000x=–111010x=–(0.1110100000)×2110[尾]原

=1.1110100000[尾]補(bǔ)

=1.0001100000存放在存儲(chǔ)器中形式為B460Hx=–1110100000例將主要內(nèi)容浮點(diǎn)數(shù)的表示格式規(guī)格化IEEE754主要內(nèi)容浮點(diǎn)數(shù)的表示格式①原碼規(guī)格化后的尾數(shù)正數(shù)為0.1×…×的形式負(fù)數(shù)為1.1×…×的形式②補(bǔ)碼規(guī)格化后的尾數(shù)正數(shù)為0.1×…×的形式負(fù)數(shù)為1.0×…×的形式規(guī)格化同一個(gè)浮點(diǎn)數(shù)表示不唯一,如:1.11×20,

0.111×21使|x|>=0.5(不絕對(duì),如尾數(shù)1.10000B表示-0.5,但不是規(guī)格化的①原碼規(guī)格化后的尾數(shù)正數(shù)為0.1×…×的形式規(guī)格化同例將下列十進(jìn)制數(shù)表示成浮點(diǎn)規(guī)格化數(shù),階碼4位(含符號(hào)),分別用補(bǔ)碼和移碼表示;尾數(shù)6位(含符號(hào)),用補(bǔ)碼表示(要求規(guī)格化)。

①19/512②-19/512

解:①19/512=10011×2-9=0.10011×2-4

階碼用補(bǔ)碼表示為:1100010011

階碼用移碼表示為:0100010011②-19/512=-10011×2-9=-0.10011×2-4

階碼用補(bǔ)碼表示為:1100101101

階碼用移碼表示為:0100101101例將下列十進(jìn)制數(shù)表示成浮點(diǎn)規(guī)格化數(shù),階碼4位(含符號(hào)),分例設(shè)浮點(diǎn)數(shù)的的階碼6位(含符號(hào)位),尾數(shù)為10位(含符號(hào)位),階碼和尾數(shù)都用補(bǔ)碼表示,求其表示范圍(規(guī)格化)。表示范圍【例題分析】

階碼范圍:

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

最大負(fù)數(shù)

最小正數(shù)

最大正數(shù)

0

二進(jìn)制補(bǔ)碼100000

111111

000001

011111

十進(jìn)制真值

-25=-32-1

+1

25-1=31

例設(shè)浮點(diǎn)數(shù)的的階碼6位(含符號(hào)位),尾數(shù)為10位(含符號(hào)注意:這里規(guī)格化尾數(shù)的最大負(fù)數(shù)的補(bǔ)碼是1.01…1的形式,而不是1.11…1的形式,是因?yàn)?.11…1不是規(guī)格化數(shù),所以規(guī)格化尾數(shù)的最大負(fù)數(shù)應(yīng)是:-0.10…01,(-0.10…1)補(bǔ)=1.01…1即:-(2-(n-1)+2-1)表示范圍②

規(guī)格化尾數(shù)表示范圍如下:

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

最大負(fù)數(shù)

最小正數(shù)

最大正數(shù)

0

二進(jìn)制補(bǔ)碼

1.0000000001.0111111110.1000000000.111111111

十進(jìn)制真值

-1-(2-9+2-1)

2-11-2-9

注意:這里規(guī)格化尾數(shù)的最大負(fù)數(shù)的補(bǔ)碼是1.01…1的形式,而浮點(diǎn)數(shù)的表示范圍:-231×1~231×(1-2-9)表示范圍浮點(diǎn)數(shù)的表示范圍:-231×1~231×(1-2-9)

根據(jù)以上分析若某機(jī)字長(zhǎng)為k+n,其中階碼k位(含一位符號(hào)位),尾數(shù)n位(含一位符號(hào)位);設(shè)a=2(k-1)-1(階碼的最大值)

b=-2(k-1)

(階碼的最小值)

則規(guī)格化數(shù)所能表示的范圍為:最大正數(shù):(1-2-(n-1))×2a

最小正數(shù):2-1×2b

最大負(fù)數(shù):-(2-(n-1)+2-1)×2b

(絕對(duì)值最小的負(fù)數(shù))最小負(fù)數(shù):-1×2a

(絕對(duì)值最大的負(fù)數(shù))階碼采用移碼不影響表示范圍,但機(jī)器數(shù)與補(bǔ)碼表示時(shí)不同浮點(diǎn)數(shù)的階碼決定了浮點(diǎn)數(shù)的表示范圍;浮點(diǎn)數(shù)的尾數(shù)決定了浮點(diǎn)數(shù)的表示精度。表示范圍根據(jù)以上分析若某機(jī)字長(zhǎng)為k+n,其中階碼k位(含一位練習(xí)

設(shè)機(jī)器數(shù)字長(zhǎng)為24位,欲表示±3萬(wàn)的十進(jìn)制數(shù),試問(wèn)在保證數(shù)的最大精度的前提下,除階符、數(shù)符各取1位外,階碼、尾數(shù)各取幾位?滿足最大精度可取

k=4,n=18解:…k=4,5,6,15

位二進(jìn)制數(shù)可反映±3萬(wàn)之間的十進(jìn)制數(shù)∴215

=32768214

=16384∵215×0.×××

×××?位…練習(xí)設(shè)機(jī)器數(shù)字長(zhǎng)為24位,欲表示±3萬(wàn)的十主要內(nèi)容浮點(diǎn)數(shù)的表示格式規(guī)格化IEEE754主要內(nèi)容浮點(diǎn)數(shù)的表示格式“Father”oftheIEEE754standard現(xiàn)在所有計(jì)算機(jī)都采用IEEE754來(lái)表示浮點(diǎn)數(shù)1970年代后期,IEEE成立委員會(huì)著手制定浮點(diǎn)數(shù)標(biāo)準(zhǔn)1985年完成浮點(diǎn)數(shù)標(biāo)準(zhǔn)IEEE754的制定Prof.WilliamKahan/~wkahan/ieee754status/754story.htmlThisstandardwasprimarilytheworkofoneperson,UCBerkeleymathprofessorWilliamKahan.

直到80年代初,各個(gè)機(jī)器內(nèi)部的浮點(diǎn)數(shù)表示格式還沒(méi)有統(tǒng)一因而相互不兼容,機(jī)器之間傳送數(shù)據(jù)時(shí),帶來(lái)麻煩

“Father”oftheIEEE754stand單精度格式:32位,符號(hào)位1位,階碼E=8位,尾數(shù)M=23位雙精度格式:64位,符號(hào)位1位,E=11位,M=52位1823S符號(hào)位EM階碼尾數(shù)32位單精度形式11152S符號(hào)位EM階碼尾數(shù)64位雙精度形式IEEE754標(biāo)準(zhǔn)浮點(diǎn)數(shù)表示單精度格式:32位,符號(hào)位1位,階碼E=8位,尾數(shù)M階碼用移碼、尾數(shù)用原碼,因?yàn)橐?guī)格化原碼尾數(shù)的最高為恒為1,為增加一位的精度,該1在尾數(shù)中不表示出來(lái),計(jì)算時(shí)在尾數(shù)前面自動(dòng)加1.IEEE754標(biāo)準(zhǔn)浮點(diǎn)數(shù)表示1823S符號(hào)位E1.M(原碼規(guī)格化)階碼尾數(shù)32位單精度形式單精度數(shù)所表示的數(shù)值為(-1)s×1.M×2e-127。雙精度數(shù)所表示的數(shù)值為(-1)s×1.M×2e-1023。其中:s=0表示正數(shù),s=1表示負(fù)數(shù);即,如果要表示一個(gè)數(shù),需要把該數(shù)寫(xiě)成:(-1)s×1.M×2(x)真值而規(guī)格化浮點(diǎn)數(shù)形式是:(-1)s×0.1M×2(128+x)移碼

=(-1)s×1.M×2(127+x)移碼相當(dāng)于此時(shí)移碼的計(jì)算不是加128,而是加127e=127+x階碼用移碼、尾數(shù)用原碼,因?yàn)橐?guī)格化原碼尾數(shù)的最高為恒為1,為幾個(gè)特殊數(shù)值:當(dāng)E的二進(jìn)制位全為1時(shí)為特殊數(shù)值:此時(shí),若M的二進(jìn)制位全為0,則n表示無(wú)窮大。若S為1則為負(fù)無(wú)窮大,若S為0則為正無(wú)窮大;若M的二進(jìn)制位不全為0時(shí),表示NaN(NotaNumber),表示這不是一個(gè)合法實(shí)數(shù)。E為全0時(shí):M全為0時(shí),表示機(jī)器0;M不全為0時(shí),表示非規(guī)格化的數(shù)。單精度數(shù)e的取值為1~254(8位表示),M為23位,共32位;雙精度數(shù)e的取值為1~2046(11位表示),M為52位,共64位。IEEE754標(biāo)準(zhǔn)浮點(diǎn)數(shù)表示幾個(gè)特殊數(shù)值:IEEE754標(biāo)準(zhǔn)浮點(diǎn)數(shù)表示例寫(xiě)出下列十進(jìn)制數(shù)據(jù)的IEEE754編碼①0.15625②-5

解:①0.15625轉(zhuǎn)換成二進(jìn)制值為0.00101,在IEEE754中規(guī)格化表示為1.01×2-3,e=127-3=124,IEEE754編碼為:0

01111100

01000000000000000000000②-5轉(zhuǎn)換成二進(jìn)制值為:-101在IEEE754中規(guī)格化表示為1.01×22,e=127+2=129,IEEE754編碼為:11000000101000000000000000000000

IEEE754標(biāo)準(zhǔn)浮點(diǎn)數(shù)表示例寫(xiě)出下列十進(jìn)制數(shù)據(jù)的IEEE754編碼IEEE754標(biāo)例將十進(jìn)制數(shù)9和5/32轉(zhuǎn)換為IEEE754標(biāo)準(zhǔn)的單精度數(shù),并用8位十六進(jìn)制表示解答(1)9=(-1)0×1001=(-1)0×23×1.001

=(-1)0×2130-127×1.001

二進(jìn)制代碼為:0

1000001000100000000000000000000即:41100000H解答(2)5/32=(-1)0×0101×2-5=(-1)0×2-5×22×1.01

=(-1)0×2124-127×1.01

二進(jìn)制代碼為:00111110001000000000000000000000即:3E200000HIEEE754標(biāo)準(zhǔn)浮點(diǎn)數(shù)表示例將十進(jìn)制數(shù)9和5/32轉(zhuǎn)換為IEEE754標(biāo)準(zhǔn)的單精例將IEEE754單精度數(shù)(8位十六進(jìn)制表示)轉(zhuǎn)換為十進(jìn)制數(shù)(1)C0A00000H(2)3F880000H解答(1)C0A00000H11000000101000000000000000000000(-1)1×(1.25)×2129-127=-1×1.25×22

=-1.25×4=-5.0解答(2)3F880000H0

0111111100010000000000000000000(-1)0×(1.0625)×2127-127=1×1.0625×20

=1.0625×1=1.0625

IEEE754標(biāo)準(zhǔn)浮點(diǎn)數(shù)表示例將IEEE754單精度數(shù)(8位十六進(jìn)制表示)轉(zhuǎn)換為十進(jìn)IEEE754的表示范圍(單精度)數(shù)符階碼尾數(shù)真值最大正數(shù)01111111011…11(2-2-23)×2127最小正數(shù)00000000100…001×2-126絕對(duì)值最大的負(fù)數(shù)(最小負(fù)數(shù))11111111011..11-(2-2-23)×2127絕對(duì)值最小的負(fù)數(shù)(最大負(fù)數(shù))10000000100..00-1×2-126IEEE754的表示范圍(單精度)數(shù)符階碼尾數(shù)真值最大正數(shù)0階碼用移碼表示的益處直接可以由移碼的表示形式看出對(duì)應(yīng)數(shù)值的大小(這里是把移碼當(dāng)做無(wú)符號(hào)數(shù)來(lái)比較大小的,而不必考慮符號(hào),這里比用補(bǔ)碼好多了,補(bǔ)碼是要變換成原碼再比較的)其次,用移碼表示的話,簡(jiǎn)化了對(duì)于“0”的判斷,即當(dāng)移碼的各位都為0的話,那么該移碼對(duì)應(yīng)的數(shù)據(jù)是能夠表示的數(shù)據(jù)中的最小值。階碼用移碼表示的益處直接可以由移碼的表示形式看出對(duì)應(yīng)數(shù)值的大小結(jié)理解規(guī)格化的意義、IEEE754表示中隱含隱含尾數(shù)最高拉的意義;給定一個(gè)真值,能用規(guī)格化浮點(diǎn)數(shù)表示該值(含IEEE754表示);給定一個(gè)浮點(diǎn)數(shù)表示的機(jī)器數(shù)(含IEEE754表示),能計(jì)算其真值。小結(jié)理解規(guī)格化的意義、IEEE754表示中隱含隱含尾數(shù)最高拉浮點(diǎn)數(shù)精度問(wèn)題1994年11月間各報(bào)紙有關(guān)Pentium處理器浮點(diǎn)瑕疵問(wèn)題的報(bào)告。Pentium芯片中浮點(diǎn)除法存在的問(wèn)題甚至上了電視節(jié)目David

Leeterman

Late

Show的十大新聞排行榜。為了換回所有問(wèn)題芯片,Intel一共為此損失了3億美元的資金。浮點(diǎn)數(shù)精度問(wèn)題1994年11月間各報(bào)紙有關(guān)Pentium處理浮點(diǎn)數(shù)的溢出浮點(diǎn)數(shù)的溢出作業(yè)33-1.將下列十進(jìn)制數(shù)表示成浮點(diǎn)規(guī)格化數(shù),階碼4位(含符號(hào)),分別用補(bǔ)碼和移碼表示;尾數(shù)6位(含符號(hào)),用補(bǔ)碼表示。(1)19/512(2)-19/5123-2.浮點(diǎn)數(shù)階碼4位(含階符),尾數(shù)9位(含數(shù)符),均用補(bǔ)碼表示,求用規(guī)格化和用非規(guī)格化表示時(shí)能夠表示的數(shù)值范圍。3-3.設(shè)浮點(diǎn)數(shù)的格式為:第15位為符號(hào)位,第14位到第8位為階碼,采用補(bǔ)碼表示;第7位到第0位為尾數(shù),與符號(hào)位一起采用規(guī)格化的補(bǔ)碼表示,基數(shù)為2。問(wèn):它能表示的正數(shù)和負(fù)數(shù)的數(shù)值范圍是什么?作業(yè)33-1.將下列十進(jìn)制數(shù)表示成浮點(diǎn)規(guī)格化數(shù)

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論