补码的意义
正数的补码等于其本身,负数的补码等于反码加一,所以为什么要大费周章的得到补码呢?
这个其实涉及到了现实的计算机电路逻辑设计!
关于计算机的计算中,正数就是加,负数就是减,所以源码和补码中,只有负数需要改变
负数的补码,是能够和其相反数相加通过溢出从而使计算机内计算结果变为0的二进制码
具体目标就是让1+(-1)=0
这种使得计算机只需要做加法运算,不需要做减法运算
例子:
12转为二进制:01100,转为补码:01100
-12转为二进制:11100,转为补码的过程:10011(反码)->10100(补码)
计算都是使用补码进行计算的
12 + (-12):
01100
10100
100000
最终算出来的是六位数,最高位舍去,结果为00000,也就是补码中的0,补码的0只有着一种表示方式
另外一个例子:
13 + (-12):
01101
10100
100001
前面多出来的一位一还是要舍去,做加法运算即可得出结果。