用二进制补码减去二进制数

时间:2019-09-09 01:27:32

标签: computer-science

  

假设151和214是带符号的8位十进制整数,以二进制补码格式存储。使用饱和算法计算151-214。结果应以十进制表示。展示你的作品。

这是对的吗?我对此很陌生:

十进制|二进制|二进制补码
   151 | 10010111 | 01101001
   214 | 11010110 | 00101010

减去00111111-> 63

为什么我会得到积极的63?

1 个答案:

答案 0 :(得分:0)

“二进制补码格式”是有符号整数的常规二进制表示形式。这并不意味着您必须执行两者的补码运算

也就是说,这个问题很难解析。 “假设151是8位带符号整数”很愚蠢,因为它太大了,无法成为8位带符号整数。 可能意味着您应该将151和214的(无符号)二进制表示形式重新解释为8位带符号表示形式,然后减去得出的数字:

当151和214的表示形式被解释为带符号时,则128位中的位改为-128。差异为256,因此151变为151-256 = -105,而214变为-42。

如果我们计算-105-(-42),则得到-63。这与151-214相同,这也许就是这个问题的重点。

这足够小,不会饱和,因此在这种情况下,我们使用饱和算法并不重要。

通常我不会回答这样的家庭作业问题,但是对于您必须回答的问题如此糟糕,我感到很抱歉。您可能应该删除问题,而不是接受此答案。