如何将-1x10 ^ 200转换为IEEE 754双精度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将-1x10 ^ 200转换为IEEE 754双精度相关的知识,希望对你有一定的参考价值。

如上所述,我想找到-1x10 ^ 200的IEEE 754表示。

我知道我们可以得到标志为1,因为我们有一个负数。但是我不确定如何找到尾数/指数。我最初的想法是将10 ^ 200转换为2 ^ x。但是x不是整数。所以我认为我们需要以某种方式通过以某种方式分离10 ^ 200得到一个分数。从理论上讲,人们可以使用非常长的分离,但我正在寻找一个更优雅的答案,可以在没有高精度计算器的情况下完成。

答案

-10200不能用IEEE-754基本64位二进制格式表示。可以表示的最接近的数字是-99999999999999996973312221251036165947450327545502362648241750950346848435554075534196338404706251868027512415973882408182135734368278484639385041047239877871023591066789981811181813306167128854888448。

64位格式的编码是0xe974e718d7d7625a。它有一个符号 - (在第63位编码为1),指数为664(在第62到52位编码为1687或0x697),有效数为0x1.4e718d7d7625a(在第51到0位编码为0x4e718d7d7625a)。

假设指数为664,则可以通过将10200除以2664,将结果写为二进制,并在小数点后的52位后舍入来找到有效数。或者,在除以2664之后,乘以252并舍入为整数。

以上是关于如何将-1x10 ^ 200转换为IEEE 754双精度的主要内容,如果未能解决你的问题,请参考以下文章

IEEE 754标准如何转换?

将十进制转换为 IEEE-754 格式

如何将大数(例如 1.23e29)转换为 IEEE 754 单精度浮点格式?

将负分数转换为 IEEE 754

IEEE-754 蟒蛇

使用 IEEE 754 标准(32 位)将数字转换为二进制