【问题标题】:Binary subtraction using two's complement使用二进制补码进行二进制减法
【发布时间】:2013-08-20 18:50:22
【问题描述】:

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

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?

【问题讨论】:

标签: binary subtraction twos-complement


【解决方案1】:

要使用 2 的补码执行有符号数 (M – N) 的减法,请执行以下操作:

  1. M和N的位数应该相同。
  2. 获取 N 的 2 的补码(包括符号位)。
  3. 将 N 的 2 的补码添加到 M(包括符号位)。
  4. 如果求和产生结束进位。丢弃末端进位。结束进位被丢弃后,最左边的位是符号位。
    • 如果符号位为0,则结果为正,
    • 如果符号位为 1,则结果为负。
  5. 如果求和没有产生结束进位,则最左边的位是符号位。

为了产生 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.

【讨论】:

    猜你喜欢
    • 2018-05-26
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-13
    • 1970-01-01
    • 2012-09-21
    相关资源
    最近更新 更多