哪个十进制值表示为0 100000010 010000。。。0?你怎么解决这个问题呢?
发布于 2013-01-15 00:30:40
你需要知道浮点是用什么标准表示的。
IEEE 754 is just one。还有其他的,这取决于这段数据有多老,或者你是从哪里得到的。
仅仅因为数字是64位并不意味着它在十进制中有唯一的表示。它取决于指数位、尾数位、偏移量等的数量。例如,IBM Floating Point Architecture是不同的。
发布于 2013-01-15 00:27:41
你怎么解决这个问题呢?
将数字转换为十六进制,然后将其分配给内存位置并从该位置读取,将其解释为浮点数或双精度数。在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文章,并由此计算出输入的结果。
https://stackoverflow.com/questions/14322421
复制相似问题