xor has the property x ^ x = 0, and x ^ 0 = x. So, x ^ x ^ y = y
a' = a ^ b b' = b ^ a' = b ^ (a ^ b) = a a'' = (a ^ b) ^ a = b
This is pretty clever, I've never seen this for a swap.
xor has the property x ^ x = 0, and x ^ 0 = x. So, x ^ x ^ y = y
This is pretty clever, I've never seen this for a swap.