如何在浮点二进制中规范化 110.110?
Posted
技术标签:
【中文标题】如何在浮点二进制中规范化 110.110?【英文标题】:How to normalise 110.110 in floating point binary? 【发布时间】:2021-08-08 22:14:02 【问题描述】:我正在处理 A-Level Comp Sci 的一项任务,其中一个问题涉及使用 6 位尾数和 4 位指数对浮点表示中的数字 110.110 进行规范化。这样做的正确方法是什么?
我不能将小数点移动到尾数 (0.110110) 的开头,因为这会导致它超过 6 位,但我也不能将小数点移动到第一个 1 (1.10110),因为那样它会充当负号位。我是保持原样没有指数还是有什么我遗漏的东西?非常感谢。
【问题讨论】:
【参考方案1】:在 IEEE-754 规范化数字中,尾数始终位于 1.0..2.0
范围内,二进制形式为 1.0000000 ... 1.1111111
。点之前的位总是设置的,所以它被省略了,我们只存储点之后的部分尾数。
在你的情况下110.110 = 100 * 1.10110
,所以尾数是10110
(或者101100
,如果需要6位)
指数100
可能存储为100 + 111 = 1011
(类似于存储为e+127
的单精度指数)。
IEEE-754 浮点值中的符号位是单独的最左边位。不确定你的格式
所以我假设下一个二进制代码:
0 1011 101100
s eeee mmmmmm
【讨论】:
@Alex Carr 注意我用指数纠正了错误 详细信息:IEEE-754 使用 significand 而不是 mantissa。 @chux - 恢复莫妮卡确实存在细微差别,而定义说The significand[1] (also mantissa[2] or coefficient,[1] sometimes also argument, or ambiguously fraction
以上是关于如何在浮点二进制中规范化 110.110?的主要内容,如果未能解决你的问题,请参考以下文章