Calculate the sum of two integers a and b, but you are not allowed to use the operator +
and -
.
Example:
Given a = 1 and b = 2, return 3.
思路:
1.两数相与,得到进位情况.
2.两数异或,得到和。(without carray)
利用这两条即可模拟加法。
int getSum(int a, int b) {
if (a==0) return b;
if (b==0) return a;
int carry=0;
while(b)
{
carry = a & b;
a = a ^ b;
b = carry << 1;
}
return a;
}