使用二进制补码进行二进制减法

时间:2013-08-20 18:50:23

标签: binary subtraction twos-complement

我正在尝试使用二进制形式的二进制补码来解决以下问题。

7.5 - 6.75

7.5 - 6.75可以改写为(7.5)+( - 6.75)

取二进制数十进制数

7.5 = 111.1

6.75 = 110.11

-6.75 = 001.00

现在我应该在哪里添加1,在“。”(句号)的左侧或右侧?

1 个答案:

答案 0 :(得分:1)

使用2的补码执行带符号数(M - N)的减法,如下所示:

  1. M和N的位数应相同。
  2. 获得N的2的补码(包括符号位)。
  3. 将N的2的补码添加到M(包括符号位)。
  4. 如果总和产生最终结转。丢弃最后一次携带。在丢弃结束进位之后,最左边的位是符号位。
    • 如果符号位为0,则结果为正,
    • 如果符号位为1,则结果为负。
  5. 如果求和不产生最终进位,则最左边的位是符号位。
  6. 产生2的赞美:

    The 2’s complement of the subtrahend 10001 = 01111
    
    1 1 1 1 carry bits
    1 0 0 1 1
    + 0 1 1 1 1
    1 0 0 0 1 0
    Since the summation produces an end carry the result is positive.
    Discard the end carry; the result is a positive number.