浮點數(shù)(單精度浮點數(shù)與雙精度浮點數(shù))在計算機中的存儲_第1頁
浮點數(shù)(單精度浮點數(shù)與雙精度浮點數(shù))在計算機中的存儲_第2頁
浮點數(shù)(單精度浮點數(shù)與雙精度浮點數(shù))在計算機中的存儲_第3頁
浮點數(shù)(單精度浮點數(shù)與雙精度浮點數(shù))在計算機中的存儲_第4頁
浮點數(shù)(單精度浮點數(shù)與雙精度浮點數(shù))在計算機中的存儲_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、浮點數(shù)在計算機中的存儲十進制浮點數(shù)格式:浮點數(shù)格式使用科學計數(shù)法表示實數(shù)??茖W計數(shù)法把數(shù)字表示為系數(shù)(coefficie nt)(也稱為尾數(shù)(mantissa),和指數(shù)(exponent)兩部分。比如3.684*10人2.在十進制中,指數(shù)的基數(shù)為10 ,并且表示小數(shù)點移動多少位以生成系數(shù)。每次小數(shù)點向前移動時,指數(shù)就遞增;每 次小數(shù)點向后移動時,指數(shù)就遞減。例如,25.92 可表示為2.592 * 10A1 ,其中2.592 是系數(shù),值10A1是指數(shù)。必須把系數(shù)和指數(shù)相乘,才能得到原始的實數(shù)。另外,女口0.00172可表示為1.72*10A-3 ,數(shù)字1.72 必須和10A-3相乘才能獲得原始

2、值。二進制浮點格式:計算機系統(tǒng)使用二進制浮點數(shù),這種格式使用二進制科學計數(shù)法的格式表示數(shù)值。數(shù)字按照二進制格式表示,那么系數(shù)和指數(shù)都是基于二進制的,而不是十進制,例如1.0101*2A2.在十進制里,像 0.159 這樣的值,表示的是0 + (1/10) + (5/100) + (9/1000)。相同的原則也適用二進制。比如, 1.0101 乘以2A2 后,生成二進制值101.01,這個值表示二進制整數(shù) 5,加上分數(shù)(0/2) + (1/4)。這生成十進制值5.25 。下表列出幾個二進制小數(shù)以及它們對應的十進制值:二進制十進制分數(shù)十進制值0.11/20.50.011/40.250.0011/8

3、0.1250.00011/160.06250.000011/320.031250.0000011/640.015625幾個二進制浮點例子:二進制十進制分數(shù)十進制值10.1012+1/2+1/82.62510011.00119+1/819.12510110.110122+1/2+1/4+1/1622.81251101.01113+1/4+1/813.375編寫二進制浮點值時,二進制通常被規(guī)格化了。這個操作把小數(shù)點移動到最左側(cè)的數(shù)位,并且修改指針進行補償。例如1101.011 變成1.101011*2A3浮點數(shù)的存儲* IEEE標準754浮點數(shù)標準使用3個成分把實數(shù)定義為二進制浮點值:*有效數(shù)字指

4、數(shù)符號位表示值是負的還是正的。符號位中的1表示負值,0表示正值。有效數(shù)字部分表示浮點數(shù)的系數(shù)(coefficient)(或者說尾數(shù)(mantissa)。系數(shù)可以是規(guī)格化的(normalized),也可以是非規(guī)格化的(denormalized)。所謂規(guī)格化,就是任何一個數(shù)的科學計數(shù)法的表示都可為 1.xxx*2A n,既然小數(shù)點左邊的一位都是1,就可以把這一位省略。單精度浮點數(shù)23bit的尾數(shù)部分,可表示的精度卻為24位,道理就在這里。指數(shù)表示浮點數(shù)的指數(shù)部分,是一個無符號整數(shù)。因為指數(shù)值可以是正值,也可以是負值,所以通過一個偏差值對它進行置偏,及指數(shù)的真實值=指數(shù)部分的整數(shù) 一偏差值。對于32

5、位浮點數(shù),偏差值=127 ;對于64位浮點數(shù),偏差值=1023.二進制浮點格式符號位指數(shù)系數(shù)浮點數(shù)的這3個部分被包含在固定長度的數(shù)據(jù)格式之內(nèi)。IEEE標準754定義了浮點數(shù)的兩種長度:32位單精度和64位雙精度可以用于表示有效數(shù)字的位的數(shù)量決定精度。下圖顯示了兩種不同精度類型的位布局:31 302322指數(shù)有效數(shù)字單精度63 6252 510指數(shù)A雙精度單精度浮點使用 23位有效數(shù)字值。但是,浮點格式假設有效數(shù)字的整數(shù)部分永遠為1,并且不在有效數(shù)字值中使用它。這樣實際上有效數(shù)字的精度達到了24位。指數(shù)使用8位值,它的范圍從0255 ,稱為移碼指數(shù),意思是必須從指數(shù)中減去一個數(shù)(稱為偏移量或者是

6、偏差值),對單精度浮點數(shù)而言,這個值是127。當指數(shù)是0和255時,指數(shù)由別的含義,因此實際指數(shù)的范圍是從 -126至U +127 (二進制指數(shù)),這樣整個浮點數(shù)的范圍則為:(1.18 *10A-38 1.0 X2 -126 至U 3.40 * 10A381.1 1 X2A127)。*指數(shù)0和255用于特殊用途。如果指數(shù)從 1變化到254,則由s (符號位)、e (指數(shù)) 和f (有效數(shù))來表示的數(shù)為:.( -1) SX hfx2s- -1的s次幕是數(shù)學上的一種方法,意思是如果s為0,則數(shù)是正的(因為任何數(shù)的 0次幕等于1 );如果S為1,則數(shù)是負的(因為 -1的1次幕為-1 ) ”。表達式的

7、另一部分是1.f,意思是1后面為二進制小數(shù)點,再后面為23位的有效小數(shù)部分。它乘以2的幕,其中指數(shù)為內(nèi)存中的 8位移碼指數(shù)減去127。注意,還有一種特殊的情況0 :如果e等于0,且f等于0,則數(shù)為0。通常,所有32位均為0貝懐示0。但是 符號位可以是1,在這種情況下,數(shù)被解釋為 -0。-0可以表示一個很小的數(shù),小到在單精 度格式中不能用數(shù)字和指數(shù)來表示。盡管如此,它們?nèi)恍∮?。 如果e等于0,且f不等于0,則數(shù)是有效的。但是,它不是規(guī)格化的數(shù),它等于注意,二進制小數(shù)點左邊的有效數(shù)為0。如果e等于255,且f等于0,則數(shù)為正或負無窮大,這取決于符號s。如果e等于255,且f不等于0,該值被認為

8、不是一個數(shù)”,簡寫為NaN。NaN可以表 示一個不知道的數(shù)或者一個無效操作的結(jié)果。Q : 3.40 * 10A38是值怎么來的?A :在單精度浮點格式中可以表示的最大規(guī)格化的正或負二進制數(shù)為:1J111II11II11II1111II111X2137TWO換算成10 進制約等于:3.402823669e+38,這里1.111.111 近似為 2,貝U 2 * 2人127=2A128 = 3.402823669e+38 .Q : 1.18 * 10A-38的值是怎么來的?A :通常,單精度浮點格式中可以表示的最小規(guī)格化的正或負二進制數(shù)為:1.000000000000()0000000000 X

9、2 必TWO換算成10 進制就是:1.175494351e-38,也就是約等于 1.18 * 10人-38Q:單精度浮點24位換算為十進制后,為什么精度是 7位?A: 10位二進制數(shù)近似等于3位十進制數(shù)。也就是說,若 10位都置1(即十六進制為3FFh,十進制為1023),則它近似等于3位十進制都設置為9,即999?;蛘撸?i0IO,也可以2相當于這種關系表明按單精度浮點格式存放的 24位二進制數(shù)大約與7位十進制數(shù)等效。因此, 說單精度浮點格式提供 24位二進制精度,或大約7位十進制精度??梢赃@么設,一個10Ak 次方,即 10Ak=2 。那么 2的24 次方 2人24 = 10A24k。從1

10、0Ak=2 可以知道k = loglO(2) 0.301。所以,2的24次方換算到十進制,相當于有 24*log10(2) 約 等于7.2個精度。Q: 262144.00 和 262144.01是一樣的么A :當然不是一樣的!但是在計算機里,單精度的存儲中,它們卻是一樣的!看這兩個數(shù)作為 單精度浮點數(shù)時在計算機里是怎么存儲的:兩者被存儲為同一個數(shù)字:1.00000000000000000000000 X 2。那這是為什么呢?原因是,規(guī)格化單精度浮點里,在小數(shù)點后有 23位數(shù),而1.000.000 會經(jīng)過2A18次方的運算后小數(shù)點會往前移動18個,那么小數(shù)點后面就只剩下5位,這時即使是1/05)

11、=0.03125都要比0.01大,所以沒辦法,只能存為一樣的數(shù)。那么上面的問題如何避免呢?答案是,使用雙精度浮點數(shù)。雙精度浮點數(shù) 的指數(shù)偏移量為1023,即3FFh,所以,以這種格式存放的數(shù)為:(-1) *x l.fx2心曲它具有與單精度格式中所提到適用于0、無窮大和NaN等情形相同的規(guī)則。最小的雙精度浮點格式的正數(shù)或負數(shù)為:最大的數(shù)為:' 用十進制表示,它的范圍近似為10 的 3082,2250738585072014X 101.7976931348623 158X次幕是一個非常大的數(shù),在 1后面有308個十進制零。53位有效數(shù)(包括沒有包含在內(nèi)的那1位)的精度與16個十進制位表示的精度十分接近。相對于單精度浮點數(shù)來說這種表

溫馨提示

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

評論

0/150

提交評論