首页  >  编程教程  >  编程问答  >  为什么要使用补码?(举例+解释)

为什么要使用补码?(举例+解释)

在《什么是原码?》那篇文章中我们提到过:原码是人脑最容易理解和计算的表示方式。既然如此,我们为什么还要使用补码呢?

首先,我们来看几个4位二进制数进行运算的例子!

在原码下,1-1=1+(-1)=0001+1001=1010=-2

我们可以看出,由于符号位参与计算,对于减法来说,用原码表示计算结果并不正确。

在反码下,1-1=1+(-1)=0001+1110=1111=-0

我们可以看出,用反码表示计算结果问题出现在“0”这个特殊数值上,正常来说,0不应该带符号,0带符号没有任何意义。

在补码下,1-1=1+(-1)=0001+1111=0000=0

我们可以看出,真值没有问题,0带符号的问题也解决了!

综上所述,我们使用补码的原因主要有以下两个方面:

第一,我们人脑可以知道原码的第一位是符号位,但是计算机不知道,而恰好补码表示中的符号位可以与数值位一起参加运算,弥补了计算机不能辨别符号位的缺憾。

第二,我们人脑可以快速计算减法,但是计算机很难做到,所以我们根据运算法则——减去一个正数等于加上一个负数,将减法运算转换成为加法运算,对计算机而言,这大大地简化了运算的过程。



本文固定URL:https://www.dotcpp.com/qa/42

编程杂谈
编程基础
知识答疑