【发布时间】:2014-04-12 03:28:21
【问题描述】:
我的程序当前通过从存储双精度的内存中读取来打印十六进制转储。
它给了我
00 00 00 00 00 50 6D 40
我如何理解这一点并获得我存储的值,即 234.5?
我知道双精度有 64 位,第一位是符号位,接下来的 11 位是指数,最后 52 位是尾数
(-1)^sign * (1.mantissa) * 2^(exponent - 1023)
但是,我已经尝试过双精度的小端和大端表示,但我似乎无法使其工作。
【问题讨论】:
-
注意:如果偏置指数为0,则公式变为
(-1)^sign * (0.mantissa) * 2^(1 - 1023)