C++ Dersleri | Bit İşlemleri | Bitwise XOR, Özel Veya Operatörü

 C++ bitwise Xor (exclusive or operator) operatörü ^ , diğer bit operatörleri gibi dijital elektronik xor yapısıyla aynıdır. Doğruluk tablosunu yine görselde paylaşalım :

xor truth table

kodlarken de aynı değişkenleri kullanalım:

int main()
{
	int a = 7;			//0111
	int b = 13;			//1101
	int aXORb = a ^ b;	        //1010
	cout << "a= " << a << ", b=" << b << ", a^b=" << aXORb;
}

çıktımız : a= 7, b=13, a^b=10

10 elde ettik, binary formatındaki sayıları alt alta yazarak soldan sağa doğru sütunları XOR işlemine tabi tutuyoruz en solda: 0 ^ 1 den 1 geldi, bir sonrakinden 1 ^ 1 den 0 geldi, bir sonrakinden : 1 ^ 0 dan 1 geldi, bir sonrakinden  1 ^ 1 den 0 geldi. Benim xor anlatırken akılda kalması için anlattığım bir hikaye var, patron sekreterine bana yalnızca bir kişi çağır demiştir. Kimse gelmezse patron bu işi sevmez. Ahmet gelirse patron için tamamdır, Mehmet gelirse de patron için tamamdır, İkisi de gelirse patron bunu sevmez, bana bir kişi lazım der. A ya da B önemi yok ama mutlaka biri lazımdır.

Hatırlatmış olayım : bu operatör bir değişkene eşitlenmediği sürece bir değişikliğe yol açmaz, ne demeye çalışıyorum şöyle örneklendirelim :

int main()
{
	int a = 7;
	a ^ 5;			
	cout << "a= " << a;
}

Bu kod ile a değişkeni hala 7 değerindedir, a yı 5 ile Xor işlemine tabi tutup a 'nın değerine eşitlersek :

a = a ^ 5;   ya da kısaca a ^ = 5; dersek, a yı 5 ile xor işlemine tabi tutup oluşan değeri a ya atamış oluruz.

Haydi bir deneme de size, finalde ne yaptığını anlayanları sonuçlarla birlikte yorumlara bekliyoruz:

int main()
{
	int x = 5;
	int y = 7;
	x = x ^ y;
	y = x ^ y;
	x = x ^ y;
	cout << x << " " << y << endl;
}

Son bir bilgi verip konuyla vedalaşıyorum : a ^ b şu şekilde de elde edilebilir -> ~(a&b)&(a|b); bu karmaşık oldu ya, a ^ b candır :)

Şimdilik herkese kolay gelsin!

Önceki konu : Bit İşlemleri | Bitwise OR

Sonraki konu : Bitwise And ~ C++ ve operatörü &

Yorumlar

Bu blogdaki popüler yayınlar

Arduino IDE Kod Satır Numaraları Nasıl Açılır

DMD2TUR | Arduino P10 Led Panel için Türkçe Karakter Desteği | Arduino P10 Led panel Türkçe yazı yazma

P10 Led Panel Nasıl Sürülür - Arduino kod