不用算术运算符实现两个数的加法操作

对于二进制加法运算,若不考虑进位,则1+1=0,1+0=1,0+1=1,0+0=0,通过对比异或,不难发现,此方法与异或类似。因而排除进位,加法可以用异或来实现。

然后考虑进位,0+0的进位为0,1+0的进位为0,只用1+1的进位为1,该操作与位运算的&操作类似。

那么加法运算可以这样实现:

1)先不考虑进位,按位计算各位累加(用异或实现),得a;

2)然后计算进位,并将进位的值左移,得值b,若b为0,则a就是加法运算的结果;若b不为0,则a+b即得结果(递归调用该函数)。

猜你喜欢

转载自blog.csdn.net/ZHUJIANWEILI4/article/details/44629703