加法
计算机知会位运算,那么二进制加法的结果在不考虑进位的情况下,与异或的结果相同。
4+5
0000 0100
0000 0101
--------------
0000 0001
那么怎么判断进位了,通过与运算,如果结果包含1则发生进位。
0000 0100
0000 0101
--------------
0000 0100
显然发生了进位,接着把结果左移动一位就是原来的进位,俩次结果又进行异或。
0000 0001
0000 1000
--------------
0000 1001
然后在进行与操作,判断进位。
0000 0001
0000 1000
--------------
0000 0000
没有发生进位,则0000 1001为结果9,否则重复上面操作。
减法
计算机只会做加法,那么4-5= 4+(-5),同样是进行异或操作然后进行与操作判断进位
0000 0100
1111 1011
--------------
1111 1111
判断进位
0000 0100
1111 1011
--------------
0000 0000
没有发生进位,则结果为 1