Vol*_*rix 1 c# permutation operators
我正在研究一个排列代码并试图理解它是如何做的,但是一个操作让我感到茫然:^=.Google不会让我搜索这些字符,所以任何人都可以告诉我它在做什么,这个运算符是什么意思?你可以在下面看到它的一个例子.谢谢!
private void swap(ref char a, ref char b)
{
if (a == b)
return;
a ^= b;
b ^= a;
a ^= b;
}
Run Code Online (Sandbox Code Playgroud)
来自MSDN:
表单的表达式
x ^= y
Run Code Online (Sandbox Code Playgroud)
被评估为
x = x ^ y
Run Code Online (Sandbox Code Playgroud)
除了x只评估一次.因此,如果您x是一个属性,它将被调用一次get,一次调用set该值.
在^(XOR)操作者执行按位exclusive-OR上积分操作数和逻辑操作exclusive-OR上布尔操作数(模数上总和2):
false ^ false = false;
false ^ true = true;
true ^ false = true;
true ^ true = false;
Run Code Online (Sandbox Code Playgroud)
XOR 运算符在密码学中非常有用,因为它的主要属性是
a ^ b ^ a == b;
Run Code Online (Sandbox Code Playgroud)
因此,您的代码只需添加两个变量的值,以便进行交换.