如何将 IEEE 754 双精度(64 位)格式的十六进制数转换为十进制数?

How do I convert a hexadecimal number in IEEE 754 double precision (64bit) format to a decimal number?

我的任务是在纸上转换双精度格式 (IEEE 754) 的十六进制数。 到目前为止,我已经将十六进制数:0x40790A0000000000 转换为二进制 64 位格式,现在我有: 0 10000000111 1001000010100000000000000000000000000000000000000000

对于下一步我不太清楚该做什么。我必须将它转换成十进制数,我尝试了几种方法,但从未得到正确的结果。 希望你能帮助我,谢谢你。

https://en.wikipedia.org/wiki/Double-precision_floating-point_format

开始
4    0    7    9    0    A    0    0    0    0    0    0    0    0    0    0
0100 0000 0111 1001 0000 1010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0 - Sign bit (this is a positive number)
 100 0000 0111 - Exponent
               1001 0000 1010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 - Fraction

指数的值为 1031。因为它是非零的,小数部分由表达式 1 + sum from i = 1 to 52 bit_(52-i) * 2^(-i).

因此分数的值为 1 + 1/2 + 0/4 + 0/8 + 1/16 + ... ~= 1.56

从那里你应该能够弄清楚其余的。

(没有完全解决这个问题,因为这看起来像是作业。)