[面试题] 不用算术运算符实现两个数的加法

来源:互联网 发布:淘宝格子铺是什么 编辑:程序博客网 时间:2024/05/23 18:29

思路:将两个数当作二进制数来处理,比方说6(110)+5(101)=11(1011),可以将二进制的加法过程分成两部分来处理:先不考虑进位求得两数的和(即两数按位异或),然后再将产生的和与进位结果(即两数按位与然后左移一位)相加,后面这一相加过程可以递归调用add函数来实现。

代码如下:

int add(const int a, const int b){    return b == 0 ? a : add(a^b, ((a&b) << 1));}
阅读全文
0 0