理解代码中的异或(异或)

时间:2014-12-20 21:31:53

标签: c++ bit-manipulation xor

我理解代码之外的XOR的概念和概念。但是当我在代码中使用它时,我想要一个简单的解释。让我举几个例子,说明我理解不通的问题。

假设我们想要在C ++中交换互联网值而不使用第三个临时变量并使用XOR,如下所示:

int a = 1;
int b = 3;

int *x = &a;
int *y = &b;

*x ^= *y;
*y ^= *x;
*x ^= *y; 

现在我知道*x ^= y转换为*x = *x ^ *y但我只需了解一行就能了解其余内容。基本上,在*x = *x ^ *y中为什么* y总是被设置为* x才能成为交换序列? (或者我也把这个部分弄错了?)如何独家选择* y以及选择什么标准?

0 个答案:

没有答案