^ =运算符在世界上做什么?

时间:2015-02-20 15:34:17

标签: c# operators permutation

我正在查看一个排列代码并尝试理解它是如何做的,但是一个操作让我感到茫然:^=。 Google不会让我搜索这些字符,所以任何人都可以告诉我它在做什么,这个运算符是什么意思?你可以在下面看到它的一个例子。谢谢!

private void swap(ref char a, ref char b)
{
    if (a == b)
        return;
    a ^= b;
    b ^= a;
    a ^= b;
}

4 个答案:

答案 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)