【问题标题】:fixed point subtraction for two's complement data二进制补码数据的定点减法
【发布时间】:2015-08-30 12:08:14
【问题描述】:

我有一些真实的数据。例如+2-3。这些数据以 4 位二进制值的二进制补码定点表示,其中 MSB 表示符号位,小数位数为零。

所以 +2 = 0010

-3 = 1101

这两个数字相加是(+2) + (-3)=-1

(0010)+(1101)=(1111)

但是如果是减法(+2)-(-3)我该怎么办呢?

是否需要再次取1101 (-3)的补码加上0010

【问题讨论】:

  • 什么是拖车?这些是纯整数,不是定点值
  • 抱歉错误。应该是补码。我知道这些是纯整数,但上面的例子也可以扩展为小数值。

标签: twos-complement fixed-point


【解决方案1】:

您可以用二进制计算-(-3),而不是简单地将其与其他值相加。

使用二进制补码,计算数字的反面非常简单:只需将 NOT 二进制运算应用于除次要位之外的每个数字。下面的等式使用 波浪号 表示单个位的 NOT 运算,并假设处理由 n 位表示的整数(在您的示例中为 n = 4):

在您的示例中(使用非正式符号):-(-3) = -(1101) = 0011

【讨论】:

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