解释计算机体系结构中带符号幅值数据的加法和减法的性能?
计算机使用带符号幅值法来实现浮点运算。大多数计算机使用带符号的二进制补码法进行整数算术运算。在这种方法中,数字最左边的位用于表示符号;0 表示正整数,1 表示负整数。数字中其余的位表示数字的幅值。
示例:-2410 定义为:
10011000
在这个例子中,最左边的位 1 表示负数,幅值为 24。
正值和负值的幅值相同,只有符号不同。
符号和幅值表示的数值范围是 **-127** 到 **127**。
在对带符号数进行加减运算时,需要考虑八种情况。这些情况取决于所执行的运算和数字的符号。
该表显示了加法和减法的算法。表的第一列显示了这些情况。表的其他列定义了要对数字的幅值执行的实际运算。表的最后一列用于避免负零。这定义了当两个相同的数字相减时,输出不能是 -0。它应该始终是 +0。
在表中,两个数字的幅值由 P 和 Q 定义。
带符号幅值数的加法和减法
运算 | 幅值的加法 | 幅值的减法 | ||
---|---|---|---|---|
(+P) + (+Q) | +(P+Q) | P>Q | P<Q | P=Q |
(+P) + (-Q) | +(P-Q) | -(Q-P) | +(P-Q) | |
(-P) + (+Q) | -(P-Q) | +(Q-P) | +(P-Q) | |
(-P) + (-Q) | -(P+Q) | |||
(+P) - (+Q) | +(P-Q) | -(Q-P) | +(P-Q) | |
(+P) - (-Q) | +(P+Q) | |||
(-P) - (+Q) | -(P+Q) | |||
(-P) - (-Q) | -(P-Q) | +(Q-P) | +(P-Q) |
如表中所示,加法算法指出:
当 P 和 Q 的符号相同时,将两个幅值相加,并将 P 的符号连接到输出。
当 P 和 Q 的符号不同时,比较幅值,从较大的数中减去较小的数。
输出的符号必须与 P 相同(如果 P > Q)或 P 的符号的补码(如果 P < Q)。
当两个幅值相等时,从 P 中减去 Q,并将输出的符号修改为正。
减法算法指出:
当 P 和 Q 的符号不同时,将两个幅值相加,并将 P 的符号连接到输出。
当 P 和 Q 的符号相同时,比较幅值,从较大的数中减去较小的数。
输出的符号必须与 P 相同(如果 P > Q)或 P 的符号的补码(如果 P < Q)。
当两个幅值相等时,从 P 中减去 Q,并将输出的符号修改为正。
广告