public class Solution {
public int getSum(int a, int b) {
int carry = 0;
while(b!=0){
carry = a&b;
a = a^b;
b = carry<<1;
}
return a;
}
}
使用^(异或)的运算结果代替单位求和的结果(由于1^1=0,0^0=0,0^1=1),使用&(And)来代替进位,为1则代表该位有进位,使用左移来代替执行进位操作。
参考资料:<a target=_blank href="http://blog.youkuaiyun.com/qq508618087/article/details/51789576">http://blog.youkuaiyun.com/qq508618087/article/details/51789576</a>