📅  最后修改于: 2021-01-08 05:38:35             🧑  作者: Mango
在本章中,让我们讨论基本的算术运算,可以使用2的补码方法对任意两个有符号的二进制数执行运算。基本的算术运算是加法和减法。
考虑两个带符号的二进制数A和B,它们以2的补码形式表示。我们可以对这两个数字进行加法运算,这类似于对两个无符号二进制数进行加法运算。但是,如果结果总和包含从符号位进行的运算,则将其丢弃(忽略)以获取正确的值。
如果结果总和为正,则可以直接找到其大小。但是,如果结果和为负,则取其2的补数以获得幅度。
让我们使用2的补码方法对两个十进制数+7和+4进行加法运算。
下面显示+7和+4的2的补码表示,每个表示5位。
(+7) 10 =(00111) 2
(+4) 10 =(00100) 2
这两个数字的和是
(+7) 10 +(+ 4) 10 =(00111) 2 +(00100) 2
⇒(+7) 10 +(+ 4) 10 =(01011) 2 。
结果总和包含5位。因此,没有从符号位执行。符号位“ 0”指示所得和为正。因此,十进制数系统的总和值为11。因此,将两个正数相加将得到另一个正数。
让我们使用2的补码方法对两个十进制数-7和-4进行加法运算。
-7和-4的2补码表示,每个都有5位,如下所示。
(−7) 10 =(11001) 2
(−4) 10 =(11100) 2
这两个数字的和是
(−7) 10 +(−4) 10 =(11001) 2 +(11100) 2
⇒(−7) 10 +(−4) 10 =(110101) 2 。
结果总和包含6位。在这种情况下,从符号位获得进位。因此,我们可以将其删除
去除进位后的结果总和为(−7) 10 +(−4) 10 = (10101) 2 。
符号位“ 1”指示结果和为负。因此,通过采用2的补码,我们得出的总和的大小在十进制数系统中为11。因此,两个负数相加将得到另一个负数。
考虑两个带符号的二进制数A和B,它们以2的补码形式表示。我们知道2的正数补码给出负数。因此,无论何时我们必须从数字A中减去数字B,然后取B的2的补数并将其加到A。因此,在数学上,我们可以将其写为
A-B = A + (B的2的补码)
同样,如果必须从数字B中减去数字A,则取A的2的补数并将其加到B。因此,在数学上,我们可以将其写为
B-A = B + (A的2的补码)
因此,两个有符号二进制数的减法类似于两个有符号二进制数的加法。但是,我们必须对数字取2的补数,应该将其减去。这是2补码技术的优势。遵循两个两个有符号二进制数相加的相同规则。
让我们使用2的补码方法对两个十进制数+7和+4进行减法运算。
这两个数字的减法是
(+7) 10 −(+4) 10 =(+7) 10 +(−4) 10 。
下面显示+7和-4的2的补码表示,每个5位。
(+7) 10 =(00111) 2
(+4) 10 =(11100) 2
⇒(+7) 10 +(+4) 10 =(00111) 2 +(11100) 2 =(00011) 2
在这里,从符号位获得进位。因此,我们可以将其删除。去除进位后的总和为
(+7) 10 +(+4) 10 = (00011) 2
符号位“ 0”指示所得和为正。因此,它的大小在十进制数制中为3。因此,两个十进制数+7和+4的减法是+3。
让我们使用2的补码方法对两个十进制数+4和+7进行减法运算。
这两个数字的减法是
(+4) 10 −(+7) 10 =(+4) 10 +(−7) 10 。
下面显示+4和-7的2的补码表示,每个5位。
(+4) 10 =(00100) 2
(-7) 10 =(11001) 2
⇒(+4) 10 +(-7) 10 =(00100) 2 +(11001) 2 =(11101) 2
这里,不是从符号位获得进位。符号位“ 1”指示结果和为负。因此,通过采用2的补码,我们得出的总和的大小在十进制数系统中为3。因此,两个十进制数+4和+7的减法是-3。