基本浮点问题?

时间:2016-02-22 18:43:37

标签: math binary floating-point add computer-architecture

我在Book上阅读了以下示例:

enter image description here

我认为最后一个表示应该是{0 | 1 0 0 0 1 | 1 1 0 1 1 1 0}因为规范化形式的11.10111010是1.110111010。有什么不对吗?

3 个答案:

答案 0 :(得分:2)

看看答案和评论,我认为可能存在对术语“正常化”的基本误解。 规范化并不意味着隐藏位。

这仅表示最重要的非零数字将具有相对于小数点的特定位置。例如,在十进制中,1可以表示为100 * 10 -2 ,10 * 10 -1 ,1 * 10 0 ,0.1 * 10 1 等。标准化系统可能需要使用例如0.1 * 10 1 ,将" 1"紧靠小数点右侧的数字。

在二进制规范化系统中,其中一个比特是已知的。不存储该位是一种常见的选择,但作为规范化系统不需要。

在这个例子的例子中,很清楚输入是如何在总和中表示没有隐藏位的,归一化形式在二进制点的右边有最高有效位,而无偏指数为0表示为10000。

二进制11.10111010等于二进制0.1110111010,无偏指数十进制2,二进制10.这使得偏差指数为10010,有效数位于1110111010的最左边位。

答案 1 :(得分:1)

你向前迈出了同样的约定。该示例不使用隐式前导1 /隐藏位,并且完全一致。

为了证明相反的选项,如果你的规范化包含一个隐含的前导1 /隐藏位,那么addend / augend和result应该是

 111.001000
+  1.10011010
--------------
1000.10111010

导致二进制编码结果

0|10011|00010111

答案 2 :(得分:1)

这些都是相同的数字: 0.111 * 2 2 ,1.11 * 2 1 ,11.1 * 2 0 。看起来示例格式没有隐藏位,并将二进制点放在左侧。