计算机的核心部件是CPU,CPU的核心是什么?是一个加法器。这个加法器只能执行一种操作,即二进制加法。其他运算都是通过加法实现的。比如说乘法、除法和减法。乘法好理解,可以认为是多个加法和多个移位运算组成的,比如:
所以二进制1001与101相乘的结果就是101101。同样地,除法可以用减法表示。那减法呢?减法该怎么计算呢?
要想计算减法,首先要明确的一点是:计算机内部一个整数是由有限个bit组成的。这里我们假设一个整数由8个bit组成。这意味着任何超过8位的整数都会被自动截断。也就是说
所以:
所以为了计算,只需计算即可。这里就被称为的补码。比如3的二进制是11,则它的8位二进制补码就是11111101,两者相加应等于。
为了计算一个二进制数的补码,只需把这个数的每一位反一反,然后加1即可。比如00000011的求反的结果是11111100再加1就是11111101,正是11的补码。
补码的思想跟进制无关。比如假设一台十进制的计算机整数都是两位的,为了计算45-23,先求23的两位十进制补码,即,或者99-23+1结果也是77。然后计算45+77=122,截断后的结果是22,正是45-23的结果。