将 IEEE754 转换为十进制的方程(标准化形式)
Posted
技术标签:
【中文标题】将 IEEE754 转换为十进制的方程(标准化形式)【英文标题】:Equation to convert IEEE754 to decimal (normalised form) 【发布时间】:2020-11-22 16:12:32 【问题描述】:任何帮助将不胜感激! 我一直在使用 IEEE754 浮点数(32 位单精度),我正在尝试将其转换为十进制规范化格式。我找到了两个方程式,但我不确定哪个是正确的。
N= (-1)^s * 1.F *2^(e-127)
OR
N= (-1)^s * 1+F * 2^(e-127)
s= sign bit
F= fraction/mantissa
e=exponent
上面哪个等式是正确的?换句话说,它是 1*F 还是 1+F ?
【问题讨论】:
请注意,点中有一个句点,表示“二进制点”,即小数点的二进制等效项。它不是乘法符号。如果 F 是 [0, 1) 中的小数,则 (1+F) 是正确的。如果 F 是作为位串的有效数字,则 1.F 是正确的,意思是解释“1”。后跟 F 的位作为二进制数字。除非 e 为零,在这种情况下它应该是 (0+F) 或 0.F 【参考方案1】:自从我完成浮点转换以来已经有一段时间了,但这是一个加号,而不是乘号(所以 1+F,而不是 1*F)。
关于这个主题的***文章非常好,也说这是一个加号:https://en.wikipedia.org/wiki/Single-precision_floating-point_format
来自爱荷华州,描述更简洁:http://class.ece.iastate.edu/arun/CprE281_F05/ieee754/ie5.html
另一种有趣的解决方法:How to convert an IEEE 754 single-precision binary floating-point to decimal?
【讨论】:
是的,刚刚确认它是一个+。谢谢以上是关于将 IEEE754 转换为十进制的方程(标准化形式)的主要内容,如果未能解决你的问题,请参考以下文章
将十进制数表示成ieee754标准的32浮点规格化数 27/64