kira bahas dulu berdasarkan sintaks
a ^= b
sama artinya dengan
a = a ^ b
artinya a akan dioperasikan ^ dengan b kemudian hasilnya disimpan dalam a.
operasi ^ adalah bit xor, artinya setiap bit (biner) yang ada di kedua bilangan akan di-XOR.
misal a = 12, dan b = 5. Jika ditulis dalam biner maka a = 1100, b = 0101
Operasi XOR artinya nilai hasil operasi bit akan bernilai 1 jika hanya slaah satu operan bernilai 1. Sisanya dia akan menghasilkan 0.
Jadi.
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 0
dengan demikian kalo kita ambil case a dan b tadi
a = 1100
b = 0101
——— xor
c = 1001 = 9
9 ini nanti akan disimpan ke dalam a.
Operasi XOR terhadap suatu variabel dan hasilnya disimpan kembali ke variabel tersebut.
Operasi XOR (Exclusive OR) bekerja dalam operasi biner berlaku per bit dalam suatu nilai integer dan memiliki rumusan:
0 XOR 0 = 0
0 XOR 1 = 1
Jadi kalau misalnya:
a = 0x55
a ^= 0xaa
maka hasil akhir a adalah 0xff (atau 255)
Karena dalam biner, 0x55 = 01010101 yg kemudian dioperasikan dengan nilai 10101010 dan disimpan kembali ke a, menghasilkan 11111111
01010101
10101010
—————— xor
11111111