龙空技术网

变量交换:巧用异或运算

算法集市 1000

前言:

现在兄弟们对“异或运算在实际中妙用”都比较注意,看官们都想要剖析一些“异或运算在实际中妙用”的相关资讯。那么小编同时在网上网罗了一些有关“异或运算在实际中妙用””的相关知识,希望你们能喜欢,姐妹们快快来学习一下吧!

异或

今天介绍一个有意思的数学运算:异或。

“异或”通常用于逻辑运算,和它比较相似的是“或”。

或 的运算法则:

若 x、y 有一个值为1,则或的结果的1。

异或 的运算法则为:

若 x、y 两个值相同,则异或结果为0;若 x、y 两个值不相同,异或结果为1。

异或的性质:一个数与其本身异或等于0,0与任何数异或不改变该数

或、异或运算的程序示例如下:

即:

x|y = 3|5 = 011 | 101 = 111 = 7x^y = 3^5 = 011 ^ 101 = 110 = 6变量交换:巧用异或运算

在需要交换两个变量的值时,通常可以使用中间变量进行交换外,代码如下图所示:

其实,还可以利用异或,将两个变量进行交换,代码如下图所示:

即:

tmp = x^y = 3^5 = 011 ^ 101 = 110tmp ^ x = 110 ^ 011 = 101 = 5tmp ^ y = 110 ^ 101 = 011 = 3

标签: #异或运算在实际中妙用