写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。
示例:
输入: a = 1, b = 1 输出: 2
提示:
a
,b
均可能是负数或 0- 结果不会溢出 32 位整数
class Solution {
public int add(int a, int b) {
//sum = a+b
// 在二进制形式下,可视为————进位的结果加上不进位的结果。
// 不考虑进位,a^b
// 考虑进位,a&b>>1
// 用b存储进位结果
while(b!=0){
int c = (a&b)<<1;
a^=b;
b = c;
}
return a;
}
}