Ric*_*ard 7 c++ floating-point double qt ieee-754
我的意思是,例如,我有以下编号用IEEE-754单精度编码:
"0100 0001 1011 1110 1100 1100 1100 1100" (approximately 23.85 in decimal)
Run Code Online (Sandbox Code Playgroud)
上面的二进制数存储在文字字符串中.
问题是,如何将此字符串转换为IEEE-754双精度表示(有点像下面的那个,但值不一样),没有丢失精度?
"0100 0000 0011 0111 1101 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1010"
Run Code Online (Sandbox Code Playgroud)
是的 相同的数字 以IEEE-754双精度编码.
我尝试使用以下算法首先将第一个字符串转换回十进制数,但它失去了精度.
num in decimal = (sign) * (1 + frac * 2^(-23)) * 2^(exp - 127)
Run Code Online (Sandbox Code Playgroud)
我在Windows平台上使用Qt C++ Framework.
编辑:我必须道歉,也许我没有明确表达的问题.我的意思是我不知道真正的值23.85,我只得到第一个字符串,我想将其转换为双精度表示而不会出现精度损失.