异或交换两个变量值

Posted wryy

tags:

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

异或交换两个变量值

swap函数完成变量a,b的交换。

void swap(){
	a=a^b;
	b=b^a;
	a=b^a;
}

分析:首先对于异或二进制两数运算结果为:

0^0=0;
0^1=1;
1^0=1;
1^1=0;

异或规律:一个数异或两次另外一个数等于原来那个数,即a ^ b ^ b=a(位置可交换);
由此不难得出:

a=a^b;//第一个a相当于一个中间变量
b=b^a=b^a^b=a;
a=b^a=a^a^b=b;//这里b=a,a=a^b

以上是关于异或交换两个变量值的主要内容,如果未能解决你的问题,请参考以下文章

不借助第三个变量交换a,b两个变量值

异或交换真的比开一个tmp快吗?

变量值a交换b,b交换a....

Python小技巧:交换两个变量值的简写方法

JavaScript交换两个变量值的七种解决方案

PHP交换两个变量值