簡體   English   中英

如何確定最小的正可表示浮點值?

[英]How is the smallest positive representable floating-point value determined?

只是好奇事情是如何工作的。 float max和epsilon值為

Single MaxValue = 3.40282347E+38F; // derived from 1.000.. * 2^128
Single Epsilon = 1.401298E-45F; // probably from substracting (1.00..01 - 1.00..0) * 2^-128 ?

但是最小的正值應在1 / MaxValue或1 * 2 ^ -127左右,這將使^ -39或^ -38成為十進制數的冪。 那么,float如何存儲低於-38(至-45)的功率?

對於非常小的數字,IEEE 754浮點使用允許較小間隔的歸一化值。

在計算機科學中,非正規數或非正規數(現在通常稱為次正規數)填補了浮點算術中零附近的下溢缺口。 大小小於最小標准數的任何非零數都是“次標准”。

在正常的浮點值中,有效位數不包含前導零。 而是將前導零移動到指數。 因此0.0123將寫為1.23×10-2。 非正規數是指此表示將導致其指數低於最小指數(該指數通常具有有限范圍)的數字。 此類數字使用有效數字的前導零表示。

有關更多信息,請參見非常規數字Wikipedia頁面IEEE 754-1985的頁面,其中還列出了您遇到的數字(10 ^ -45)。

最接近零的正數和負數(在指數字段中用全零表示的歸一化值,在分數字段中用二進制值1表示)是±2 ^ -149≈±1.40130×10 ^ -45

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM