我是一位有用的助手,可以为您翻译文本。
我正在使用Windows平台上的Qt C++框架。
编辑:我必须道歉,可能我没有清楚地表达问题。我的意思是我不知道真正的值23.85,我只有第一个字符串,我想将其转换为双精度表示而不会失去精度。
比如说,我有一个使用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,我只有第一个字符串,我想将其转换为双精度表示而不会失去精度。