1.求和主要思路
利用异或 和移位操作实现
2.交换主要思路
①:基于加减法
a = a+b;
b = a-b;
a = a-b;
② :基于异或运算
a = a^b;
b = a^b;
a = a^b;
以下为求和的代码,在VS2015中调试运行无误
#include "stdafx.h"
#include<iostream>
using namespace std;
int Add(int num1, int num2)
{
int sum;
int carry;
do
{
sum = num1^num2;
carry = (num1 & num2) << 1;
num1 = sum;
num2 = carry;
}
while (num2 != 0);
return num1;
}
int main()
{
int num1;
int num2;
while (1)
{
cin >> num1 >> num2;
cout << "num1+num2 =" << Add(num1, num2);
}
return 0;
}