在制造出晶体管后,然后利用晶体管制造出了与非门,然后又利用与非门制造出了加法器。加法器解决了加法运算问题。还需要解决减法的计算问题,但是与加法器相比,设计减法器硬件更为复杂,增加了计算的时间,能不能用加法器实现减法器的功能?这个实现的过程就用到了补码。
计算机为什么使用补码?采用补码可以简化计算机硬件电路设计的复杂度。
程序员必备资源,值得收藏!点击下载
对于有符号数,内存要区分符号位和数值位,要是能把符号位和数值位等同起来,让它们一起参与运算,不再加以区分,只用加法器就可以同时实现加法和减法运算,这样硬件电路就变得简单了。
8 - 3 等价于 8 + (-3),12 - (-9) 等价于 12 + 9。
简化硬件电路的代价就是有符号数在存储和读取时都要进行转化。这个转换过程就涉及到我们熟悉的原码、反码、补码。
原码
将一个整数转换成二进制形式,就是其原码。例如short a = 5;,a 的原码就是0000 0000 0000 0101;更改 a 的值a = -19;,此时 a 的原码就是1000 0000 0001 0011。
通俗