最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

浮點數(shù)的表示范圍

來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 19:27:17
文檔

浮點數(shù)的表示范圍

浮點數(shù)的表示范圍:浮點數(shù)是由符號,階碼和尾數(shù)三部分組成,浮點數(shù)分為單精度浮點數(shù)和雙精度浮點數(shù),單精度浮點數(shù)的便是范圍是-3.4E38~3.4E38,雙精度浮點數(shù)的范圍是-1.79E+308 ~ +1.79E+308【推薦課程:JavaScript教程】浮點數(shù)表示一個浮點數(shù)(Floating Point
推薦度:
導讀浮點數(shù)的表示范圍:浮點數(shù)是由符號,階碼和尾數(shù)三部分組成,浮點數(shù)分為單精度浮點數(shù)和雙精度浮點數(shù),單精度浮點數(shù)的便是范圍是-3.4E38~3.4E38,雙精度浮點數(shù)的范圍是-1.79E+308 ~ +1.79E+308【推薦課程:JavaScript教程】浮點數(shù)表示一個浮點數(shù)(Floating Point
浮點數(shù)是由符號,階碼和尾數(shù)三部分組成,浮點數(shù)分為單精度浮點數(shù)和雙精度浮點數(shù),單精度浮點數(shù)的便是范圍是-3.4E38~3.4E38,雙精度浮點數(shù)的范圍是-1.79E+308 ~ +1.79E+308

【推薦課程:JavaScript教程】

浮點數(shù)表示

一個浮點數(shù)(Floating Point Number)由三個基本成分構成:符號(Sign)、階碼(Exponent)和尾數(shù)(Mantissa)。通??梢杂孟旅娴母袷絹肀硎靖↑c數(shù):

S PM

其中S是符號位,P是階碼,M是尾數(shù)。

根據(jù)IEEE(美國電氣和電子工程師學會)754標準中的定義,單精度浮點數(shù)是32位(即4字節(jié))的,雙精度浮點數(shù)是64位(即8字節(jié))的。兩者的S、P、M所占的位數(shù)以及表示方法由下表可知:


S P M 表示公式偏移量
單精度浮點數(shù)1(第31位)8(30到23位)23(22到0位)(-1)^S*2(P-127)*1.M127
雙精度浮點數(shù)1(第63位)11(62到52位)52(51到0位)(-1)^S*2(P-1023)*1.M1023

其中S是符號位,只有0和1,分別表示正負

P是階碼,通常使用移碼表示(移碼和補碼只有符號位相反,其余都一樣。對于正數(shù)而言,原碼、反碼和補碼都一樣;對于負數(shù)而言,補碼就是其絕對值的原碼全部取反,然后加1)。階碼可以為正數(shù),也可以為負數(shù),為了處理負指數(shù)的情況,實際的指數(shù)值按要求需要加上一個偏差(Bias)值作為保存在指數(shù)域中的值,單精度數(shù)的偏差值為127,雙精度數(shù)的偏差值為1023。例如,單精度的實際指數(shù)值0在指數(shù)域中將保存為127,而保存在指數(shù)域中的64則表示實際的指數(shù)值-63,偏差的引入使得對于單精度數(shù),實際可以表達的指數(shù)值的范圍就變成-127到128之間(包含兩端)。

M為尾數(shù),其中單精度數(shù)為23位長,雙精度數(shù)為52位長。IEEE標準要求浮點數(shù)必須是規(guī)范的。這意味著尾數(shù)的小數(shù)點左側必須為1,因此在保存尾數(shù)的時候,可以省略小數(shù)點前面這個1,從而騰出一個二進制位來保存更多的尾數(shù)。這樣實際上用23位長的尾數(shù)域表達了24位的尾數(shù)。例如對于單精度數(shù)而言,二進制的1001.101(對應于十進制的9.625)可以表達為1.001101 × 23,所以實際保存在尾數(shù)域中的值為00110100000000000000000,即去掉小數(shù)點左側的1,并用0在右側補齊。
根據(jù)標準要求,無法精確保存的值必須向最接近的可保存的值進行舍入,即不足一半則舍,一半以上(包括一半)則進。不過對于二進制浮點數(shù)而言,還多一條規(guī)矩,就是當需要舍入的值剛好是一半時,不是簡單地進,而是在前后兩個等距接近的可保存的值中,取其中最后一位有效數(shù)字為零者。

據(jù)以上分析,IEEE 754標準中定義浮點數(shù)的表示范圍為:


二進制(Binary)十進制(Decimal)
單精度浮點數(shù)± (2-2^-23) × 2127~ ± 10^38.53
雙精度浮點數(shù)± (2-2^-52) × 21023~ ± 10^308.25

浮點數(shù)的表示有一定的范圍,超出范圍時會產(chǎn)生溢出(Flow),一般稱大于絕對值最大的數(shù)據(jù)為上溢(Overflow),小于絕對值最小的數(shù)據(jù)為下溢(Underflow)。

浮點數(shù)的表示約定

  單精度浮點數(shù)和雙精度浮點數(shù)都是用IEEE 754標準定義的,其中有一些特殊約定,例如:
  1、當P=0,M=0時,表示0。
  2、當P=255,M=0時,表示無窮大,用符號位來確定是正無窮大還是負無窮大。
  3、當P=255,M≠0時,表示NaN(Not a Number,不是一個數(shù))。
非規(guī)范浮點數(shù)

當兩個絕對值極小的浮點數(shù)相減后,其差值的指數(shù)可能超出允許范圍,最終只能近似為0。為了解決此類問題,IEEE標準中引入了非規(guī)范(Denormalized)浮點數(shù),規(guī)定當浮點數(shù)的指數(shù)為允許的最小指數(shù)值時,尾數(shù)不必是規(guī)范化(Normalized)的。有了非規(guī)范浮點數(shù),去掉了隱含的尾數(shù)位的制約,可以保存絕對值更小的浮點數(shù)。而且,由于不再受到隱含尾數(shù)域的制約,上述關于極小差值的問題也不存在了,因為所有可以保存的浮點數(shù)之間的差值同樣可以保存。
根據(jù)IEEE 754標準中的定義,規(guī)范和非規(guī)范浮點數(shù)的表示范圍可歸納為下表:


規(guī)范浮點數(shù)非規(guī)范浮點數(shù)十進制近似范圍
單精度浮點數(shù)± 2^-149 至 (1-2^-23)*2^-126± 2^-126 至 (2-2^-23)*2^127± ~10^-44.85 至 ~10^38.53
雙精度浮點數(shù)± 2^-1074 至 (1-2^-52)*2^-1022± 2^-1022 至 (2-2^-52)*2^1023± ~10^-323.3 至 ~10^308.3

與IEEE 754相關的標準

本文的結論基于IEEE 754標準,另外一個標準是IEEE 854,這個標準是關于十進制浮點數(shù)的,但沒有規(guī)定具體格式,所以很少被采用。另外,從2000年開始,IEEE 754開始修訂,被稱為IEEE 754R,目的是融合IEEE 754和IEEE 854標準。該標準在浮點格式方面的修訂有:1、加入了16位和128位的二進制浮點數(shù)格式;2、加入了十進制浮點數(shù)格式,采用了IBM公司提出的格式。

總結:

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

浮點數(shù)的表示范圍

浮點數(shù)的表示范圍:浮點數(shù)是由符號,階碼和尾數(shù)三部分組成,浮點數(shù)分為單精度浮點數(shù)和雙精度浮點數(shù),單精度浮點數(shù)的便是范圍是-3.4E38~3.4E38,雙精度浮點數(shù)的范圍是-1.79E+308 ~ +1.79E+308【推薦課程:JavaScript教程】浮點數(shù)表示一個浮點數(shù)(Floating Point
推薦度:
標簽: 表示 表達 范圍
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top