📜  数字电路-有符号的二进制算法

📅  最后修改于: 2021-01-08 05:38:35             🧑  作者: Mango


在本章中,让我们讨论基本的算术运算,可以使用2的补码方法对任意两个有符号的二进制数执行运算。基本的算术运算是加法和减法。

两个有符号二进制数的加法

考虑两个带符号的二进制数A和B,它们以2的补码形式表示。我们可以对这两个数字进行加法运算,这类似于对两个无符号二进制数进行加法运算。但是,如果结果总和包含从符号位进行的运算,则将其丢弃(忽略)以获取正确的值。

如果结果总和为正,则可以直接找到其大小。但是,如果结果和为负,则取其2的补数以获得幅度。

例子1

让我们使用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

让我们使用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补码技术的优势。遵循两个两个有符号二进制数相加的相同规则。

例子3

让我们使用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。

例子4

让我们使用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。