0

如何將十進制轉換爲IEEE 745浮點單精度? 我可以使用像0.5,0.75等小數字 我的問題是,我不知道如何處理較小的數字。 例如,IEEE 754浮點表示法

12.1325×10^-13

+1

您的問題是什麼? 「小數字」有什麼問題? –

回答

0

我會認爲難的是二進制轉換,而不是IEEE浮點編碼(因爲你說你知道如何在0.5和0.75轉換)。對於更簡單的例子,如12.1325 * 10 -13,我會用我的binary converter)。到了70位,0.00000000000121325是

0.0000000000000000000000000000000000000001010101010111111111100000001111 ...

圓角(用手)到24顯著位,這是 0.00000000000000000000000000000000000000010101010101111111111

從那裏,它straitforward編碼這是一個浮動。

另一種解決方法是分析(你需要一個好的任意精度計算器的幫助,但是,如PARI/GP)。通過重寫12.1325 * 10 -13作爲10分之121325啓動,並試圖找到兩個分母的24位分子和電力最接近的數字:

一十分之十二萬一千三百二十五 = X/2 ñ

X =(2 ñ * 121325)/ 10

你會發現,N = 63給你你以後:X = 11190256.123714056749056 = 11190256(當RO未達到最接近的整數)。 (11190256二進制= 101010101011111111110000,你會看到答案匹配以上)。當你規範化浮動,你減去23指數,贈送:1.0101010101111111111 * 2 -40

(對於後一種方法,請參閱我的文章Correct Decimal To Floating-Point Using Big Integers。)

相關問題