将十进制转换为 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-2008 十进制浮点数据转换为二进制浮点格式
如何将大数(例如 1.23e29)转换为 IEEE 754 单精度浮点格式?