It is the least expensive method to exchange the value of two Numbers without mediation. The simple principle is that the negative of xor is positive
Code:
#include <stdio.h>
int main()
{
int a = 11, b = 22;
printf("a=%d b=%d\n", a, b);
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("a=%d b=%d\n", a, b);
}
Compile:
gcc test.c -o test
Perform: a=11 b=22 a=22 b=11