为什么要使用补码?(举例+解释)
在《什么是原码?》那篇文章中我们提到过:原码是人脑最容易理解和计算的表示方式。既然如此,我们为什么还要使用补码呢?
首先,我们来看几个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带符号的问题也解决了!
综上所述,我们使用补码的原因主要有以下两个方面:
第一,我们人脑可以知道原码的第一位是符号位,但是计算机不知道,而恰好补码表示中的符号位可以与数值位一起参加运算,弥补了计算机不能辨别符号位的缺憾。
第二,我们人脑可以快速计算减法,但是计算机很难做到,所以我们根据运算法则——减去一个正数等于加上一个负数,将减法运算转换成为加法运算,对计算机而言,这大大地简化了运算的过程。