很容易想到为二进制的与或非。
加法分为三步:
1 各位相加不进位 0 + 0 =0, 0+1 = 1,1+0=1,1+1=1,很明显是异或运算
2 进位 1+1 =10进位,其余均不进位 ,进行左移动一位
3 一直循环
代码:
#include <iostream>
using namespace std;
int sum(int data1,int data2){
int sum,carry;
do{
sum = data1 ^ data2;
carry = (data1 & data2)<<1;
data1 = sum;
data2 = carry;
}while(carry != 0);
return data1;
}
void main(){
cout <<sum(6,7);
}
运行结果: