我想我知道如何将十进制数转换为 IEEE 754 单精度浮点表示,但我想确定一下。
我想在 IEEE 754 单精度浮点表示中表示 3.398860921 x 10^18。我知道如何浮动代表。被打破了。
第 31 位:符号(0 表示 +,1 表示 -) 第 30-23 位:表示指数 第 22-0 位:表示尾数(有效位)
所以符号显然是0,因为它是一个正数。对于指数,我想出了这个(通过将 18 添加到 127 的偏差)并将指数表示为:1001 0001
对于 3.398860921 部分的尾数,我不断地将小数点右边的所有内容乘以 2,如果大于 1,我标记为 1,否则标记为 0。然后取新答案并再次将所有内容乘以小数点右边 2,直到我想出足够的位来填充尾数。
所以现在我有: 0 | 1001 0001 | 0110 0110 0001 1011 1011 111
因此,当我将其转换为十六进制时,我得到 0x48B30DDF 但这与我在 3.398860921 x 10^18 中开始的数字不同
应该是这样还是我在某个地方犯了错误?任何帮助将不胜感激。