Random factoid:

Use  ^  for bitwise XOR in C#, for example:

  a = a ^ c;   (or simply:   a ^= c;)