$(a \bigoplus b ) \bigoplus c = a \bigoplus ( b \bigoplus c )$
$( a \bigoplus b ) = ( b \bigoplus a ) $
$a \bigoplus a = 0 $
$a \bigoplus 0 = a$
ilk basta elimizde $a$ ve $b$ var. $a$ yi $a \bigoplus b $ ye esitleyelim. Daha sonra $b$ yi $a \bigoplus b$ ye esitleyelim. yani $b=a \bigoplus b \bigoplus b = a$. Daha sonra $a$ yi yeniden $a \bigoplus b$ ye esitlersek (yada baska bir degisle $a \bigoplus b \bigoplus a$) elimize $b$ gelir.
C kodunda gostermek gerekirse
#include <stdlib.h>
#include <stdio.h>
void degistir(int* a, int* b)
{
*a = *a ^ *b; // a = a xor b
*b = *a ^ *b; // b = a xor b xor b = a
*a = *a ^ *b; // a = a xor b xor a = b
}
int main(){
float a = 3.14;
float b = 2.71;
printf("a : %f , b : %f \n",a,b);
degistir((int*)&a,(int*)&b); // fonksiyonumuz int* bekliyor o yuzden ilk basta float olan
// degiskenimizin adresini & operatoru ile alip (int*) ile int*
// tipine donusturuyoruz
printf("a : %f , b : %f \n",a,b);
}