十进制值表示为0 100000010 010000。 。 。 0?你怎么能解决这个问题?
答案 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?有关如何执行此操作的详细信息。
作为实验的替代方案,您当然可以阅读诸如针对single或double精确浮点数的WIkipedia文章之类的文档,并从中确定您输入的后果。