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

时间:2016-10-21 14:24:22

标签: math hex ieee-754

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

下一步我不知道该怎么做。我必须将其转换为十进制数字,并且我尝试了几种方法,但从未得到正确的结果。 希望你能帮助我,谢谢你。

1 个答案:

答案 0 :(得分:2)

来自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 +和i = 1到52 bit_(52-i)* 2 ^( - i)给出。

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

从那里你应该能够完成其余的工作。

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