如何将 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
从那里你应该能够弄清楚其余的。
(没有完全解决这个问题,因为这看起来像是作业。)
我的任务是在纸上转换双精度格式 (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
从那里你应该能够弄清楚其余的。
(没有完全解决这个问题,因为这看起来像是作业。)