补码:解决负数在计算机中的表示问题。正数的补码就是其本身;负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)。
举例:(1)010,其中(1)为符号位“-”,十进制表示为-2。(0)011,其中(0)为符号位“+”,十进制表示为+3。(3-2=1) 二进制计算流程如下:
3的反码与补码均为本身:即为0011。-2的反码:1101,补码1110。将双方补码相加可得10001,首位溢出,结果为0001,十进制即为1。
二进制减法理解:去掉第一位符号的属性,即0000-1111实际表示为0-15。可以将其理解为传统时钟的刻度。3-2可以看成 (3+16-2)=>(3+14)顺时针转动14格同等于逆时针转动2格。二进制表示为
0010+1110=10001,结果为0001,十进制即为1。可以看出1110即为-2的补码。
补码理解:
3-2=(3+16-2)
其中16-2意思向右移动14个单位,等同于 刻度范围(0-8)+(8-14)。刻度范围(8-14)长度等同于(10(ps:二进制表达式:1010,若首项带有符号属性十进制则为-2)-16)长度,(10-16)的刻度范围长度即为二进制1010(-2的二进制表达式)去除符号位 0010的反码+1,长度为6,那么总长度即为1000+0110=1110。即为-2补码的转换表达:1010->1101->1110。