【问题标题】:C# compound assignment operator ^=C# 复合赋值运算符 ^=
【发布时间】:2011-04-21 13:30:45
【问题描述】:

这个操作符 ^= 在 c# 中是什么意思?

【问题讨论】:

  • 正如所有其他答案所说,它是一个 XOR 运算符。一个很好的解释是here
  • 为什么不问Wikipedia?或者任何参考书,就此而言。

标签: c#


【解决方案1】:

这意味着将 LHS 表达式的值与 RHS 表达式的值按位异或,并将其分配回 LHS 表达式。

例如:

int x = 10;
int y = 3;

x ^= y; // x = 10 ^ 3, i.e. 9

LHS 表达式只计算一次,所以如果你有:

array[GetIndex()] ^= 10;

那只会调用一次GetIndex。但是请不要那样做,因为这很讨厌:)

另请参阅relevant MSDN page

您可能还会发现Eric Lippert's recent April Fool's Day blog post on compound assignment operatorspart one of the series, which was rather more serious, may prove enlightening 很有趣。

【讨论】:

  • 这个问题对你来说是不是有点容易? :)
  • ^不确定@AdamRackis 是否在打双关语... 位运算符问题对您来说“有点”容易吗? ;) 哈哈哈哈哈哈哈:'D
【解决方案2】:

这个:

x ^= y;

等价于:

x = x ^ y;

换句话说,将 x 设置为 x 与 y 异或的值。

【讨论】:

    【解决方案3】:

    异或赋值运算符。

    形式的表达

     x ^= y
    

    被评估为

     x = x ^ y
    

    除了 x 只计算一次。 ^ 运算符对整数操作数执行按位异或运算,对布尔操作数执行逻辑异或运算。

    http://msdn.microsoft.com/en-us/library/0zbsw2z6.aspx

    【讨论】:

      【解决方案4】:

      这是“排他或赋值”运算符。详情在http://msdn.microsoft.com/en-us/library/0zbsw2z6(v=VS.100).aspx

      【讨论】:

        【解决方案5】:

        异或。 a ^= ba = a ^ b 相同,其中 a 和 b 是某种整数类型。

        【讨论】:

          猜你喜欢
          • 2011-11-16
          • 1970-01-01
          • 2020-04-17
          • 1970-01-01
          • 2020-12-01
          • 2020-03-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多