- 先计算两个数按位相加的结果
- 在计算两个数相加的过程有没有进位(按位与左移一位即可)
public int Add(int num1,int num2) {
int r1 = num1^num2;
int r2 = (num1&num2)<<1;
//如果进位为0,那么可以结束
if(r2==0)
{
return r1;
}
while(r2!=0)
{
//先保存按位相加的结果
int t = r1;
//计算新的按位相加的结果
r1 = r1^r2;
//计算新的进位值
r2 = (t&r2)<<1;
}
return r1;
}