在计算机系统中,数值都是用补码来存储的。
主要原因是:使用补码,可以将符号位和其它位统一处理,同时,减法也可以按照加法来处理,如果最高位有进位,则进位被舍弃。
以一个字节为例
正数的补码和反码都跟原码是相同的。对于负数则不同,负数的反码是将原码除符号位以外的各位取反,而负数的补码则是反码+1。比如:
-1的原码为10000001,反码为11111110,补码为11111111。
在计算机中,为什么要设立补码呢?
(1)为了让计算机能执行减法
(2)为了统一正0和负0
正0的原码:00000000
负0的原码:10000000
这两个都是0,但是原码却有不同的表示,但是它们的补码确是一样的,都是00000000。