您的位置:首页 > 编程语言 > C语言/C++

371 Sum of Two Integers

2016-09-08 19:48 323 查看
问题描述:Calculate
the sum of two integers a and b,
but you are not allowed to
use the operator 
+
 and 
-
.

问题思路:加法可以拆解成两个步骤:不考虑进位,各位相加;各位计算进位与否。这个过程对十进制和二进制都满足。其中异或运算(半加运算)可实现第一步。第二步是与运算。

1. a和b只有做a^b和(a&b)<<1就是两步的结果

2. 然后对新的两个数相加,也就是重复第一步

3. 直到没有进位,也就是(a&b)<<1==0

int getSum(int a, int b) {
int c = 0;
do {
c = a^b;
b = (a&b)<<1;
a = c;
} while(b);
return c;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ 位运算