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。)

相关问题