我的意思是,例如,我有以下以 IEEE-754 单精度编码的数字:
"0100 0001 1011 1110 1100 1100 1100 1100" (approximately 23.85 in decimal)
上面的二进制数存储在文字字符串中。
问题是,如何将这个字符串转换为 IEEE-754 双精度表示(有点像下面的,但值不一样),而不会丢失精度?
"0100 0000 0011 0111 1101 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1010"
这是同一个号码以 IEEE-754 双精度编码。
我尝试使用以下算法首先将第一个字符串转换回十进制数,但它会丢失精度。
num in decimal = (sign) * (1 + frac * 2^(-23)) * 2^(exp - 127)
我在 Windows 平台上使用 Qt C++ 框架。
编辑:我必须道歉,也许我没有清楚地表达这个问题。我的意思是我不知道真正的值 23.85,我只得到了第一个字符串,我想将它转换为双精度表示而不损失精度。