面试题 17.01. 不用加号的加法
设计一个函数把两个数字相加。不得使用 + 或者其他算术运算符。
示例:
输入: a = 1, b = 1
输出: 2
int add(int a, int b) {
unsigned int ans = 0,c = 0,mask = 1;
while(mask){
int ai = a&mask;
int bi = b&mask;
ans |= (ai^bi^c);
c = (ai&bi)|(c&(ai|bi));
c<<=1;
mask<<=1;
}
return (int)ans;
}