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;
}
本文介绍了使用位运算实现两个整数求和及交换的方法,包括异或和移位操作求和,以及基于加减法和异或运算的变量交换技巧。通过具体的C++代码示例,展示了如何在不使用额外变量的情况下完成这些操作。
172万+

被折叠的 条评论
为什么被折叠?



