我正在查看一个排列代码并尝试理解它是如何做的,但是一个操作让我感到茫然:^=
。 Google不会让我搜索这些字符,所以任何人都可以告诉我它在做什么,这个运算符是什么意思?你可以在下面看到它的一个例子。谢谢!
private void swap(ref char a, ref char b)
{
if (a == b)
return;
a ^= b;
b ^= a;
a ^= b;
}
答案 0 :(得分:5)
From MSDN:
形式的表达
x ^= y
评估为
x = x ^ y
,但x只评估一次。因此,如果您的x
是属性,则会将其调用一次到get
,一次调用set
该值。
^
(XOR
)运算符对积分操作数执行按位exclusive-OR
运算,对bool操作数执行逻辑exclusive-OR
(模数加2
):
false ^ false = false;
false ^ true = true;
true ^ false = true;
true ^ true = false;
XOR
运算符在加密中非常有用,因为它的主要属性是
a ^ b ^ a == b;
因此,您的代码只需添加两个变量的值即可进行交换。
答案 1 :(得分:2)
a ^ = b 在 a 中存储 a ^ b 的值,这是 a <的唯一或< / em>和 b 。
答案 2 :(得分:2)
它是异或赋值运算符。
您可以在此处了解详情:https://msdn.microsoft.com/en-us/library/0zbsw2z6.aspx
答案 3 :(得分:1)