我通过LinkedIn的链接遇到了这个面试问题,我知道XOR是做什么的,但同时我对位移和类似的东西不满意,如果我不必这样做,我尽量不做事情对我自己来说太复杂了。
但是我真的很想更多地了解这些东西在我将来找到一个好的用例的情况下是如何工作的。
预测以下程序的输出
public class Program { public static void Main(string[] args) { int x = 1975; int y = 2015; x ^= y ^= x ^= y; Console.WriteLine("x = " + x + "; y = " + y); } }
它给出了输出
x = 0;Y=1975
有人可以将其分解为步骤来解释这行代码中到底发生了什么吗?分配顺序等?
x ^= y ^= x ^= y;