在浮点表示中,十进制值表示为0 100000010 010000。 。 。 0

时间:2013-01-14 16:26:11

标签: math

十进制值表示为0 100000010 010000。 。 。 0?你怎么能解决这个问题?

2 个答案:

答案 0 :(得分:4)

您需要知道浮点表示的标准。

IEEE 754 is just one。还有其他一些,取决于这段数据的年龄,或者你从哪里得到它。

仅仅因为数字是64位并不意味着它具有十进制的唯一表示。它取决于指数位数,尾数位,偏移量等。例如,IBM Floating Point Architecture是不同的。

答案 1 :(得分:1)

  

你怎么能解决这个问题?

将数字转换为十六进制,然后将其分配到内存位置,并从该位置读取,将其解释为float或double。在C中,您可以使用union以不同的方式解释同一块内存。

另请参阅What will be the value in float if I have a binary number as 1111111111111111 and the storage formats used by Intel processors is 32 bits?有关如何执行此操作的详细信息。

作为实验的替代方案,您当然可以阅读诸如针对singledouble精确浮点数的WIkipedia文章之类的文档,并从中确定您输入的后果。