2010-02-24 118 views
1

我知道,最小和值是:
分鐘:3.362... 10-4932
最大:1.189... 10+4932
(2^14) * log(2) ~ 4932這使我的指數部分。但我找不出尾數。如何計算IEEE擴展雙精度的最小值和最大值?

+0

該問題很難閱讀,因爲旁邊的數字太多而沒有格式化。你能解決這個問題嗎? – Tronic 2010-02-24 02:28:30

+0

@Tronic,這樣更好嗎? – atoMerz 2012-05-08 12:36:57

回答

0

尾數有一個隱含的開始一點。這樣可以避免浪費一位存儲位,該位始終爲1(除了減少浮點數,這是所有指數位爲零時的特殊情況)。

請注意,隱式的第一個數字只能在二進制中使用。例如。在十進制中你可能有3.14e + 2,你不能只刪掉第一個數字(3),因爲你不知道哪個數字(1-9它已經是這樣了)

例如,浮點值seeemmmmm讀爲(在C語言風格的僞代碼)

(s ? -1 : 1) * ((binary)1mmmmm << ((binary)eee - bias)); 

其中偏壓爲這個特定的浮點類型的常數,使得所有指數值(EEE)可正,000是最負指數。

所以,你可以通過0b111111(比尾數多一個位)計算最大值,這個最大值被指數的最大值(無偏)移動,min imum值與負號相同。

+0

OK,這個IEEE標準的最大值應該是 1.11111 ... 1(64位的後一個週期),二進制格式,幾乎是2位十進制。但是2不像上面的1.189。 最小值和最大值似乎有不同的尾數。 P.S.應該是(2^14)* log(2)〜4932 – atoMerz 2010-02-25 03:28:34

相關問題