int getSum(int a, int b) {
return b==0? a:getSum(a^b, (a&b)<<1); //be careful about the terminating condition;
}
二进制位运算加法思路:
while(b)
{
int temp = (a&b)<<1;
a = a^b; //每bit位:0+1=1, 1+1=0, 0+0=0
b = temp ; //每bit位:1+1=10 表示进位。b==0时没有进位
}
return a;
本文介绍了一种使用位运算实现整数加法的方法。通过异或操作处理不考虑进位的情况,与操作和左移操作处理进位,递归直至没有进位完成加法运算。
1084

被折叠的 条评论
为什么被折叠?



