负零和正零非规范化?

时间:2015-03-23 03:26:42

标签: floating-point systems-programming ieee

我的教授参加了一个练习期末考试的问题,我们正在使用IEEE浮点格式。二进制是一个5位表示,其中一个案例我们使用Minus Zero。每个表示有1个符号位,3个指数位和1个小数位。

他认为它的二进制表示为1 0000,我明白了。有效数M为0,我理解,因为非正规化值具有有效数M = f = 0,因为分数字段为0.

但是,他将指数值E设为-3。

这个,我不明白。我认为减0是非规范化的!我的书说

“当指数字段为全零时,表示的数字为非规范化形式。在这种情况下,指数值为E = 1 - 偏差,有效数值为M = f,即,没有隐含前导的分数字段1.“

由于负0被非规范化,E应该等于1 - 3(偏差)= -2,对吗?

在我的书中,带有4位浮点格式的正0,4位指数位,3位小数位和7(2 ^ 4 -1)的偏差,指数值E为-6,这是正确的因为E = 1-7(偏差),因为它是非规范化的。

为什么在这种情况下有所不同?或者我的教授犯了错误?

1 个答案:

答案 0 :(得分:3)

零使用相同的指数作为非正规数,并且当它的表示被解码时,它们没有前导1位。你可以把它称为“非正规”,只要注意其他人可能会更严格地使用这个词(即考虑0和非正规的浮点数的不相交类)。

至于-3,在指数的有偏和无偏的版本之间进行转换时,偏差值可能是错误的。不要读太多内容。重要的是要记住,非正规的指数表示为“所有位零”,并且是它可以具有的值范围的最小可能值。