计算机使用有符号幅度方法来实现浮点运算。大多数计算机使用 Signed-2 的补码方法对整数执行算术运算。在这种方法中,数字中最左边的位用于表示符号;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) | -(QP) | +(P-Q) | |
(-P) + (+Q) | -(P-Q) | +(QP) | +(P-Q) | |
(-P) + (-Q) | -(P+Q) | |||
(+P) - (+Q) | +(P-Q) | -(QP) | +(P-Q) | |
(+P) - (-Q) | +(P+Q) | |||
(-P) - (+Q) | -(P+Q) | |||
(-P) - (-Q) | -(P-Q) | +(QP) | +(PQ) |
如表中所示,加法算法指出 -
当 P 和 Q 的符号相等时,将两个幅度相加并将 P 的符号连接到输出。
当 P 和 Q 的符号不同时,比较大小并从较大的数字中减去较小的数字。
在 P > Q 的情况下,输出的符号必须等于 P 或在 P < Q 的情况下 P 的符号的补码。
当两个幅度相等时,从 P 中减去 Q 并将输出的符号修改为正。
减法算法指出 -
当 P 和 Q 的符号不同时,将两个量值相加并将 P 的符号连接到输出。
当 P 和 Q 的符号相同时,比较大小并从较大的数字中减去较小的数字。
在 P > Q 的情况下,输出的符号必须等于 P 或在 P < Q 的情况下 P 的符号的补码。
当两个幅度相等时,从 P 中减去 Q 并将输出的符号修改为正。