在回答这个问题前,我们假设不用补码的方式来表示负数,而只是把最高位的符号标志位变为 1 表示负数,
如果采用这种方式来表示负数的二进制的话,试想一下 -2 + 1 的运算过程,如下图:
按道理-2 + 1 = -1
,但是上面的运算过程中得到结果却是 -3
,所可以发现,这种负数的表示方式是不能用常规的加法来计算了,就需要特殊处理,要先判断数字是否为负数,如果是负数就要把加法操作变成减法操作才可以得到正确对结果
,比如上述通过判断-2为负数,表达式转成-2-1
,最后的运算结果刚好是-1,这就非常不好了,毕竟加减法运算在计算机里是很常使用的,所以为了性能考虑,应该要尽量简化这个运算过程,而用了补码的表示方式,对于负数的加减法操作,实际上是和正数加减法操作一样的。你可以看到下图,用补码表示的负数在运算 -2 + 1 过程的时候,其结果是正确的:
为什么计算机要用补码的方式来表示负数?
最新推荐文章于 2023-02-07 21:31:27 发布