使用1的补码进行加法和减法

2024 年 8 月 28 日 | 3 分钟阅读

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

使用1的补码进行加法

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

情况1:正数与负数相加,正数具有更大的幅度。

首先,计算给定负数的1的补码。与给定的正数相加。如果我们得到循环进位1,则将其添加到LSB。

示例:1101和-1001

  1. 首先,找到负数1001的1的补码。因此,要找到1的补码,请将所有0更改为1,并将所有1更改为0。数字1001的1的补码为0110。
  2. 现在,添加两个数字,即1101和0110;
    1101+0110=1 0011
  3. 通过添加两个数字,我们得到循环进位1。我们将此循环进位添加到0011的LSB。
    0011+1=0100

情况2:在负数具有更高幅度的情况下,将正值与负值相加。

首先,计算负值的1的补码。将其与正数相加。在这种情况下,我们没有得到循环进位。因此,取结果的1的补码以获得最终结果。

注意:结果是一个负值。

示例:1101和-1110

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

情况3:两个负数相加

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

注意:结果是一个负值。

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

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

使用1的补码进行减法

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

  • 第一步,找到减数的1的补码。
  • 接下来,将补码与被减数相加。
  • 如果得到进位,则将进位添加到其LSB。否则,取结果的1的补码,该结果将为负数

注意:减数的值总是从被减数中减去。

示例 1 10101 - 00111

我们取减数00111的1的补码,结果为11000。现在,将它们相加。因此,

10101+11000 =1 01101.

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

示例 2 10101 - 10111

我们取减数10111的1的补码,结果为01000。现在,将两个数字相加。因此,

10101+01000 =11101.

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