什么是二进制数的减法?


二进制数的减法是通过对减数进行二进制补码来实现的。二进制补码通过以下步骤完成:

  • 对每一位取反。即将 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
              +1
1 0 0 1 1 1 1 1
Output = 10011111 (MSB indicates a negative value)

更新于: 2021年7月27日

767 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告