微处理器用二进制补码系统表示有符号整数,因为它可以将减法运算转换为对减数的补数的加法运算。
1.什么是二进制补码运算
我们先引入补数的概念:
补数:一个数与它的补数之和是一个常数。例如一个一位的十进制数与它的补数之和总是9,2的补数是7,4的补数是5。在n位的二进制算术中,数P的补数Q=-Q(即常数是)。
令n位二进制数N的二进制补码定义为-N。如果N=5=00000101(8位二进制数),则N的补码为-00000101=100000000-00000101=11111011(注意此处11111011用于表示5的补码,不要看成无符号整数)。
下面看几个例子:
5:00000101,5的补码:11111001
7:00000111,7的补码:11111001
例1:将7与5的补数相加
00000111 + 11111011 = 1000000010
结果为9位二进制数100000010。由于一共只有8位,我们忽略最左边一位,结果为00000010,也就是2。即7与5的补数相加结果为2,效果等同于7-5=2。
例2:将7的补数与5相加
11111001+00000101=111111110
结果为9位二进制数111111110,忽略最左边第九位后结果为11111110,“刚好”是二进制2的补码(-00000010=11111110)&#x