使用符号幅度和二进制补码的二进制算术

时间:2015-09-02 13:55:50

标签: binary signed subtraction twos-complement complement

我正在修改我几周后的考试。我有一个例子问题我已经回答但我不确定它是否正确。有人可以请我验证我的答案,并解释如果不正确,我会在哪里出错。

以下是问题: 考虑符号幅度表示法中的两个二进制变量:A = 011111和B = 000001.显示所涉及的所有步骤,以二进制格式执行以下操作(即,不从二进制转换为另一个基数以获得结果)。假设您只有六位可用于答案。

A-B使用两个补码。

这是我的答案: 在B上使用两个补码 B = 000001 翻转并添加1

 111110
+000001
 --------
 111111 

然后是A + 2的补充B

 011111
+111111
-------
 011110

最终答案:011110

1 个答案:

答案 0 :(得分:1)

使用2'补语减法: -

  

可以通过添加2的补码来执行二进制减法   对减数的减数。 a-b中的minuend为a,在这种情况下,减数为b)

     
      
  1. 如果产生了最后一个进位,则丢弃进位,并通过剩余的位给出答案,这是正数(minuend更大)   而不是减数)。

  2.   
  3. 如果最后一个进位为0,则答案是否定的(minuend小于减数)并且是2的补码形式。

  4.   

现在,B = 111110 + 1 = 111111的2的补码。

接下来,A + 2的补充B = 011111 + 111111 = 1011110。

正如你所看到的,总和是7位,我们有1作为最终进位,所以根据规则1,我们需要丢弃进位。

所以,最终答案= 011110。

您的回答符合此答案,因此,您的回答是正确的。