Bitwise Operators

Bitwise Operators konusuna değinilen kısım.

Bitwise Operators Nedir?

Her bir değerin bilgisayar tarafında bit düzeyinde (0 ve 1'lerden oluşan) bitsel bir seti vardır. Bitwise Operators, bilgisayarın belleğindeki veya bir veri türündeki herhangi bir belirli biti işlemek veya manipüle etmek için kullanılan operatörlerdir. Bu operatörler, özellikle düşük seviyeli veri manipülasyonu ve işlem yaparken kullanışlıdır.

Kısaca bu değerlerin 0 ve 1 değerlerinden oluşan bit setlerini bozmak, oynamak, sağa veya sola kaydırmak, az sonra değinilecek olan operatör kapıları ile bu setleri mukayeseye sokarak bit düzeyinde işlemler yapmaktır.

  1. AND Operatörü (&): & operatörü, iki bit dizisi arasında "ve" mantıksal işlemi yapar. Her iki bit de 1 ise sonuç 1, diğer durumlarda sonuç 0 olur.

unsigned int a = 12;  // 01100
unsigned int b = 25;  // 11001

unsigned int sonuc = a & b;  // 8 (01000)

/*
 01100 --> 12
 11001 --> 25
&_____
 01000 --> 8
*/
  1. OR Operatörü (|): | operatörü, iki bit dizisi arasında "veya" mantıksal işlemi yapar. En az bir bit 1 ise sonuç 1, diğer durumlarda sonuç 0 olur.

unsigned int a = 12;  // 01100
unsigned int b = 25;  // 11001

unsigned int sonuc = a | b;  // 29 (11101)

/*
 01100 --> 12
 11001 --> 25
|_____
 11101 --> 29
*/
  1. XOR Operatörü (^): ^ operatörü, iki bit dizisi arasında "özel veya" mantıksal işlemi yapar. İki bit aynı ise sonuç 0, farklı ise sonuç 1 olur.

unsigned int a = 12;  // 01100
unsigned int b = 25;  // 11001

unsigned int sonuc = a | b;  // 21 (10101)

/*
 01100 --> 12
 11001 --> 25
^_____
 10101 --> 21
*/
  1. NOT Operatörü (~): ~ operatörü, bir bit dizisini ters çevirir. Yani, 0'ları 1 yapar ve 1'leri 0 yapar.

unsigned int a = 12;  // 1100

unsigned int sonuc = ~a;  // 4294967283 (1111111111111111111111111110011)
  1. Sol (<<) ve Sağ (>>) Kaydırma Operatörleri: << operatörü, belirli bir sayıyı belirli bir sayıda bit sola kaydırır. >> operatörü ise belirli bir sayıyı belirli bir sayıda bit sağa kaydırır.

unsigned int a = 8;  // 1000

unsigned int solKaydirilmis = a << 2;  // 32 (100000)
unsigned int sagKaydirilmis = a >> 1;  // 4 (100)

/*
a << 2 --> 'a' değerininin bütün bit'lerini 2 birim sola kaydır
a >> 1 --> 'a' değerininin bütün bit'lerini 1 birim sağa kaydır
*/

Last updated