计算机中用反码保存数据是为了便于对数据进行快速的表示和运算:
其中比较基础的运算 有:
1、正数的表示
一句话,正数的补码既是其原码,如3的补码位 0000 0011
2、负数的表示
一句话,负数的补码为源码取反加1,如-4的补码为1000 0100 ->1111 1011->1111 1100
3、加法
二进制补码的加法为按照位数做加法
4、减法
减去一个数等于加上这个数的相反数,先对减数取反,在做加法
5、正数的取反
证书的取反即为负数 的生成过程
6、负数的取反
根据2的反向映射,负数的补码加上(-1)全1再按位取反就得到其绝对值。
一些特殊的补码:
1、全1补码表示-1
2、位数全为零的负数补码为 表示- 2的b次方
3、其余的负数补码求绝对值全部可以按照第六点进行。
三、有符号的整型运算扩充:
对于证书的位数扩充没有什么好说的
对于负数的位数扩充,实际上是其绝对值补码的基础上前面补零再取反加一,加以相当于对原来的位数进行操作,原来的补码保留,加上的零因为取反全部变成了1,所以负数的位数扩充的方式位再前面加上全1即可。