【发布时间】:2016-04-02 15:41:11
【问题描述】:
我通过here 学习了如何从十进制转换为 IEEE 754,但我不知道如何转换一个非常大的数字,而不必通过帖子中解释的方法将其全部除。
例如,我必须将 -1.5845632e29 转换为 IEEE 754 单精度浮点,有没有比获取这个大数的 log base 2 更简单的方法?
【问题讨论】:
-
大数字可能不适合 IEEE-754 格式。为什么不直接使用 bignum 库?
-
-1.5845632e29 在 IEEE-754
binary32数字可表示的范围内。为什么计算 log2 来获得指数是个问题?在最坏的情况下,它可以通过将每一步中的数字减半的迭代来计算,直到结果在 [1,2) 范围内。 -
准确地执行基本转换是一个难题,我建议您参考以下论文作为起点:William D.Clinger,“如何准确读取浮点数。 " ACM SIGPLAN 通知 39.4 (2004): 360-371.
标签: floating-point ieee-754 base-conversion single-precision