将十进制转换为 IEEE-754 格式

Posted

技术标签:

【中文标题】将十进制转换为 IEEE-754 格式【英文标题】:converting decimal to IEEE-754 format 【发布时间】:2017-04-15 17:48:11 【问题描述】:

我正在尝试将 30.125 转换为 10 位浮点数。 1 个符号位,5 个指数位,偏置为 15 和 4 个尾数位。我想出了以下正确的 IEEE-754 格式的解决方案。

S    E        Mantissa
0    10011    1110

然后部分问题问上面的浮点数代表什么十进制值,正确答案是30。请问他们是怎么得到30的?

【问题讨论】:

【参考方案1】:

有一个隐含 1,所以如果指数为零(15 因为有偏差),则 尾数是 1.xxxx,所以这里是 1.111 - 记住这个点是一个二进制点。但是指数是19。去掉15的偏差,就是4。

所以二进制数是 11110 - 将二进制尖右移 4 位。 2 + 4 + 8 + 16 = 30。

【讨论】:

感谢您的解释,如果我们想存储额外的 0.125,您能解释一下指数和尾数中需要多少位吗? @blor 十进制 30.125 是二进制 11110.001,8 个有效位。您需要存储其中的 7 个,因此您需要一个 7 位有效位。指数不变。 @PatriciaShanahan 谢谢,但正确答案是 8 位而不是 7 位。

以上是关于将十进制转换为 IEEE-754 格式的主要内容,如果未能解决你的问题,请参考以下文章

IEEE 754标准如何转换?

从 IEEE 754-2008 十进制浮点数据转换为二进制浮点格式

如何将大数(例如 1.23e29)转换为 IEEE 754 单精度浮点格式?

将十进制数表示成ieee754标准的32浮点规格化数 27/64

将科学计数法中的十进制数转换为 IEEE 754

使用 IEEE 754 标准(32 位)将数字转换为二进制