问题
不使用运算符 + 和 - ,计算两整数 a 、b 之和
例子
思路
-
方法1
a+b的实现=a^b(无进位相加)+(a&b)<<1(进位),一直进行直到进位!=0【因为牵扯到负数,所以不能是进位>0就可以了】
-
方法2
代码
//方法1
int n=a^b;
int jin=(a&b)<<1;
while(jin!=0)
{
int t=n;
n=t^jin;
jin=(t&jin)<<1;
}
return n;
//方法2 更简单
while(b != 0){
int temp = a ^ b;
b = (a & b) << 1;
a = temp;
}
return a;