我试图将一个大整数转换为 32 位单精度浮点数,但我无法解决我遇到的这个问题。如果大整数的二进制表示大于 23 位尾数怎么办。
例如,取整数 1,671,277,287
其二进制表示为 01100011100111011010101011100111
我的理解是,您将小数位向左移动,直到它的左侧只有 1 位,如下所示:
01.100011100111011010101011100111
我的问题是这个尾数是 30 位,单精度浮点数只有 23 位尾数的空间。我试图寻找这个特定的问题,但我没有找到任何东西。我将如何解决这个问题?
编辑:找出一些信息,以防其他人有这个问题。单精度浮点的默认舍入是“四舍五入到最接近,与偶数相关”。另一个 StackOverflow 评论了如何轻松地做到这一点。