什么是二进制数的减法?

通过对减数执行二进制补码来减去二进制数。二进制补码是通过以下步骤完成的 -

  • 对每个数字进行补码。即,将 1 更改为 0,将 0 更改为 1。

  • 将 1 添加到输出。

下面的例子说明了使用上述步骤对二进制数字进行减法运算。

示例:11101011 - 01100110

从第一个值 11101011 中减去第二个值 01100110。

首先对第二个值 01100110 应用二进制补码,即按照所示的两个步骤进行操作。

Step 1: 0 1 1 0 0 1 1 0
1 0 0 1 1 0 0 1 (change 1 to 0 and 0 to 1)
Step 2: 1 0 0 1 1 0 0 1
             +1 (add 1)1 0 0 1 1 0 1 0 (resultant)
              1
Then, add the resultant to the first value.
1 1 1 0 1 0 1 1 (first value)
+1 0 0 1 1 0 1 0 (resultant)1 0 0 0 0 1 0 1(output)
ignore 1 1 1 1 1 1
The output is 10000101.

它可以理解从大数中减去小数的过程。最高有效位 (MSB) 或最左边的位设置为 1 以表示负数。MSB 称为符号位。其余 7 位用于表示值。

以下是从较小的数字中减去较大的数字的步骤 -

  • 它可以将二进制补码应用于较小的数字。

  • 它用于将结果值与较小的数字相加。

  • 它可以将 MSB 更改为 0。

  • 它可以对结果数字应用二进制补码。

MSB 表示负值。

示例:10010101 – 10110100

Step 1: 1 0 1 1 0 1 0 0 (greater number)
0 1 0 0 1 0 1 1 (change 1 for 0 and 0 for 1)
0 1 0 0 1 0 1 1
             +1 (add 1)0 1 0 0 1 1 0 0            1 1
Step 2: 1 0 0 1 0 1 0 1 (smaller number)
+0 1 0 0 1 1 0 0 (add the resultant value to smaller number)1 1 1 0 0 0 0 1    1 1 1
Step 3: 1 1 1 0 0 0 0 1
            0 1 1 0 0 0 0 1 (change MSB bit to 0)
Step 4: 0 1 1 0 0 0 0 1
            1 0 0 1 1 1 1 0 (change 1 for 0 and 0 for 1)
 1 0 0 1 1 1 1 0
              +11 0 0 1 1 1 1 1Output = 10011111 (MSB indicates a negative value)