理解它们,可以帮助我们更好的理解特有的现象,比如为什么整形除以整形的结果也是整形。
0^1=1,0+1=1
1^1=0,1+1=2,二要进一,所以是10,原位置上还是0,就相当于把进位信息给抹去了。
既然进位信息被抹去了,就要想办法把进位信息加回来。
两个数字与运算,得到的结果相当于记录了进位信息,因为只有两个数字都是1的时候,结果才是1。也只有两个数字都是1的时候,相加才用进位。
但进位信息的位置不对,要往前移一位,也就是左移。
所以,进位信息的最终结果为:0001<<1=0010。
把无进位相加的结果加上进位信息,就是最终加法的结果。
而且,当进位信息为0的时候,无进位相加^0=进位相加。
所以,我们的目标就是一直重复上面的操作,直到进位信息变成0。
好,这时候,进位信息为零了。那第七步的结果就是结果。
不放心的话,还可以再拿第七步和第八步的结果再异或一下。
按照之前的推理,无进位相加^0=进位相加。
即a^0=a+0,所以,任何数和零异或都会等于它本身。
a+b=a+(-b),所以减法可以延用加法的逻辑。
