2017-10-13 88 views
2

我知道如果我有一些這樣的:IEEE-754 32位(單精度)指數-126 -127代替

1 | 1001 0001 | 0011 0011 0000 0001 0101 000 
1 sign bit | 8 bit biased exponent | 23 bit fraction/mantissa 

我可以通過減法計算出「真正的」指數偏置127( 0111 1111)來自偏倚指數。即1001 0001 - 0111 1111 = 10010(如此真實的指數爲18)

1,0011 0011 0000 0001 0101 000 * 2^18

所以現在我的問題:

如果有一個(非規範化)這樣的號碼:

0 | 0000 0000 | 0000 0000 0000 0000 0000 001 

爲什麼指數是-126而不是-127? 0000 0000 - 0111 1111應該是-127,而不是-126讓

0,0000 0000 0000 0000 0000 0001 * 2^-126,而不是0,0000 0000 0000 0000 0000 0001 * 2^-127

感謝和問候

回答

3

非正規化單精度浮點數具有2 -126一個隱含的指數:

(-1)signbit×2 -126×0.significandbits

查看https://en.wikipedia.org/wiki/Single-precision_floating-point_format瞭解更多詳情。

+0

但是,爲什麼-126而不是-127 – knowledge

+2

@knowledge因此,法線和非法線之間沒有差距。最小的歸一化值具有1的指數值,其轉化爲2^-126並且在有效數中具有隱含的前導1。因此,該值爲2^-126 * 1.0最大的非正常值在有效數中有一個隱含的前導0,其值爲2^-126 * 0.11111111111111111111111。 – dbush