Math 基本浮点问题?

Math 基本浮点问题?,math,binary,floating-point,add,computer-architecture,Math,Binary,Floating Point,Add,Computer Architecture,我在书中读到了以下例子: 我认为最后一个表示应该是{0 | 1 0 0 1 | 1 0 1 1 1 0},因为标准化形式的11.10111010是1.110111010。有什么不对吗 你必须将相同的惯例向前和向后。该示例不使用隐式前导1/隐藏位,并且在这方面完全一致 为了演示相反的选项,如果规范化包含一个隐式前导1/隐藏位,那么加数/augend和结果应该是 111.001000 + 1.10011010 -------------- 1000.10111010 导致二进制编码的结果 0

我在书中读到了以下例子:


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

你必须将相同的惯例向前和向后。该示例不使用隐式前导1/隐藏位,并且在这方面完全一致

为了演示相反的选项,如果规范化包含一个隐式前导1/隐藏位,那么加数/augend和结果应该是

 111.001000
+  1.10011010
--------------
1000.10111010
导致二进制编码的结果

0|10011|00010111

这些都是相同的数字:0.111*22,1.11*21,11.1*20。示例格式似乎没有隐藏位,并将二进制点放在左侧。

查看答案和注释,我认为可能对术语“规范化”存在基本误解标准化并不意味着隐藏位。

这只意味着最重要的非零位将具有相对于基点的特定位置。例如,在十进制中,1可能表示为100*10-2、10*10-1、1*100、0.1*101等。标准化系统可能需要使用例如0.1*101,将“1”数字直接置于小数点右侧

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

在本例中,从总和中输入的表示方式可以清楚地看出,没有隐藏位,规范化形式的最高有效位紧靠二进制点的右侧,无偏指数0表示为10000


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

11.10111010在规范化形式下为1.110111010,是吗?您声称隐式前导1用于从数字到浮点内存格式的反向编码。但是你也应该把这个约定应用到前面的操作数从内存格式到数字的转换中。我不认为这个示例格式有隐藏位。@DigitalRoss:我会在,我试图说明,对于隐藏位,整个示例看起来会有所不同。@LoveComplexity:规范化适用于内存格式的解释。你的两个数字只是证明了除以2。我的问题是关于重新规范化部分!!当然,我的观点是,
x.y
normalization只是一种方法。在这种格式中,标准化显然意味着
.xy
,如果没有隐藏位,这是有意义的。你的意思是{0 | 1 0 0 0 | 1 0 1 1 1 0}。我问题中的最后一个数字是相同的。在进行计算时,始终应用基本原则检查你的答案。我们将两个不同的正数相加。结果必须大于两个输入中的较大值,但小于较大输入值的两倍。唯一可能的结果指数是10010和10011。