原理:
1、对两个数进行异或运算,sum=num1^num2,不考虑进位。
2、对两个数进行与运算,carry=(num1&num2)<<1,
3、将sum和carry相加,循环执行。
注:减法,乘法和除法可以使用加法的变形。
#include <iostream>
using namespace std;
int add(int num1,int num2)
{
int sum,carry;
while(num2!=0)
{
sum=num1^num2;
carry=(num1&num2)<<1;
num1=sum;
num2=carry;
}
return sum;
}
void main()
{
cout<<add(3,4)<<endl;
}