1

所以我在练习我的二进制减法。自从我第一次考试以来已经有很长一段时间了,我决定创建自己的棘手二进制减法,我想出了这个:

 1100
-1101

当然,“借用技巧”对这个问题不起作用,至少我无法让它发挥作用。我唯一的选择是翻转第二个二进制数(底部一个)的位,然后添加一个基本上做 2 的补码的位,因此 1101 变为 0011。然后将主二进制数(1100)与 2 的补码表示(0011)相加意味着它看起来像这样:

    1100 (-4) assume 2's complement
+   0011 (3)  assume 2's complement

sum:1111 (-1) assume 2's complement

我只需要确认这个问题,因为我已经很长时间没有进行二进制减法了。

4

1 回答 1

3
 1100
-1101

0 - 1 = 1(借用 1)

 1100
-1101
   1
=====
    1

0 - 0 - 1 = 1(借用 1)

 1100
-1101
  11
=====
   11

1 - 1 - 1 = 1(借用 1)

 1100
-1101
 111
=====
  111

1 - 1 - 1 = 1(借用 1)

 1100
-1101
1111
=====
 1111

结果是1111借了 1 个。就无符号算术而言,这意味着要么结果下溢,要么您需要从下一个有效数字借位。(就有符号算术而言,没有溢出,因为您还借用了第二位,并且计算对应于-4 - -3 = -1。)

于 2012-11-22T21:56:30.210 回答