我的任务是在纸上转换双精度格式(IEEE 754)的十六进制数。 到目前为止,我已将十六进制数:0x40790A0000000000转换为二进制64位格式,现在我已经: 0 10000000111 10010000101000000000000000000000000000000000000000000
下一步我不知道该怎么做。我必须将其转换为十进制数字,并且我尝试了几种方法,但从未得到正确的结果。 希望你能帮助我,谢谢你。
答案 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
从那里你应该能够完成其余的工作。
(完全解决这个问题,因为这看起来像是家庭作业。)