📌  相关文章
📜  数字电子产品中使用1的补码进行加法和减法

📅  最后修改于: 2020-12-30 04:31:38             🧑  作者: Mango

使用1的补码加法和减法

在上一节中,我们了解了不同的补码,例如1的补码,2的补码,9的补码和10的补码等。在本节中,我们将学习使用1的补码执行算术运算,例如加法和减法。我们可以使用1、2、9和10的补码执行加法和减法。

使用1的补码加法

当我们添加两个二进制数时,可能存在三种不同的情况,如下所示:

情况1:当正数幅度较大时,将正数与负数相加。

最初,计算给定负数的1的补数。用给定的正数求和。如果得到末端进位进位1,则将其添加到LSB。

示例:1101和-1001

  • 首先,找到负数1001的1的补码。因此,为了找到1的补数,将所有0更改为1,并将所有1都更改为0。数字1001的1的补码为0110。
  • 现在,将两个数字相加,即1101和0110; 1101 + 0110 = 1 0011
  • 通过将这两个数字相加,我们得出末端进位进位1。我们将此末端进位进位加到LSB的0011。0011 + 1 = 0100

情况2:在负数幅度较大的情况下,将正值与负值相加。

最初,计算负值的1的补数。用正数求和。在这种情况下,我们没有得到末端进位。因此,取结果的1的补码即可得到最终结果。

注意:结果为负值。

示例:1101和-1110

  • 首先找到负数1110的1的补数。因此,为了找到1的补数,我们将所有0更改为1,并将所有1都更改为0。数字1110的1的补数为0001。
  • 现在,将两个数字相加,即1101和0001; 1101 + 0001 = 1110
  • 现在,找到结果1110的1的补码,即最终结果。因此,结果1110的1的补码为0001,并在该数字之前添加一个负号,以便我们可以识别出它是一个负数。

情况3:两个负数的加法

在这种情况下,首先找到两个负数的1的补数,然后将这两个补数相加。在这种情况下,我们总是得到末尾进位,并被加到LSB中,为了得到最终结果,我们取结果的1的补码。

注意:结果为负值。

示例:五位寄存器中的-1110和-1110

  • 首先找到负数01101和01110的1的补码。因此,为了找到1的补数,我们将所有0更改为1,并将所有1都更改为0。数字01110的1的补码为10001,而01101为10010。
  • 现在,我们添加两个补码,即10001和10010。 10001 + 10010 = 1 00011
  • 通过将两个数字相加,我们得出末端进位进位1。我们将此末端进位进位加到LSB的00011。00011 + 1 = 00100
  • 现在,找到结果00100的1的补码,即最终答案。因此,结果00100的1的补码为110111,并在数字前添加一个负号,以便我们可以识别出它是一个负数。

用1的补码相减

以下是使用1的补码减去两个二进制数的步骤

  • 在第一步中,找到子差的1的补码。
  • 接下来,在补数后面加上减数。
  • 如果有进位,则将进位添加到其LSB。否则取1的结果的补数,该结果将为负

注意:总是将减值减去减值。

范例1: 10101-00111

我们取1的补码,代号00111,得出11000。现在,求和。所以,

10101 + 11000 = 1 01101。

在以上结果中,我们得到了进位位1,因此将其添加到给定结果的LSB中,即01101 + 1 = 01110,这就是答案。

范例2: 10101-10111

我们取1的补差子10111,得出01000。现在,将两个数字相加。所以,

10101 + 01000 = 11101。

在以上结果中,我们没有得到进位位。因此,计算结果的1的补码,即00010,它是负数和最终答案。