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

