异或运算实现两数交换

Posted FLATCC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异或运算实现两数交换相关的知识,希望对你有一定的参考价值。

1.异或定义

1 ⊕ 1 = 0

0 ⊕ 0 = 0

1 ⊕ 0 = 1

0 ⊕ 1 = 1

简单说就是,相同为0,不同为1。

 

2.C++实现方法

 1 #include <iostream>
 2 
 3 int main()
 4 {
 5       int a, b;
 6       std::cout << "请输入要交换的两个数:";
 7       std::cin >> a >> b;
 8       std::cout << "交换前:\\na=" << a << "  b=" << b << "\\n";
 9       if (a == b)
10       {
11       }
12       else
13       {
14             a = a ^ b;
15             b = a ^ b;
16             a = a ^ b;
17       }
18       std::cout << "交换后:\\na=" << a << "  b=" << b << "\\n";
19 
20       return 0;
21 }

 

以上是关于异或运算实现两数交换的主要内容,如果未能解决你的问题,请参考以下文章

异或交换两数

异或^运算——完成两数交换

异或^运算——完成两数交换

位运算的奇技淫巧:实现乘除交换两数判断奇偶交换符号求绝对值高低位交换二进制逆序统计二进制中 1 的个数

面试题 16.01. 交换数字-----位运算

每日一题位运算交换两数