Bitsel İşlemler

Bire tamamlama

Değişken değerinin bire tamamlanmasıdır. İfade değerinin haneleri, değişken değerinin 0 içeren tüm hanelerinde 1, değişken değerinin 1 içeren tüm hanelerinde ise 0 olacak şekilde ayarlanır.

b = ~n;

Örnek:

   char a='a',b;
   b=~a;
   Print("a = ",a, "  b = ",b);  
// Sonuç şöyle olur:
// a = 97   b = -98

Sağa Kaydırma

x değerinin sağa doğru y basamak kaydırılmasının ikili gösterimi. Kaydırma değerinin tipi işaretsiz ise mantıksal sağ kaydırma yapılır, yani serbest kalan sol taraf sıfırlarla doldurulur.

Kaydırma değerinin tipi işaretli ise aritmetik sağ kaydırma yapılır, yani serbest kalan sol taraftaki haneler işaret bitinin değeriyle doldurulur (işaret bitinin değeri sayı pozitifse 0, sayı negatifse 1 olur).

x = x >> y;

Örnek:

   char a='a',b='b';
   Print("Önce:  a = ",a, "  b = ",b); 
//--- sağa kaydırma
   b=a>>1;
   Print("Sonra:   a = ",a, "  b = ",b); 
// Sonuç şöyle olur:
// Önce:  a = 97   b = 98
// Sonra:   a = 97   b = 48

Sola Kaydırma

İkili x ifadesi y basamak sola kaydırılır. Boşaltılan sağ taraftaki haneler ise sıfırla doldurulur.

x = x << y;

Örnek:

   char a='a',b='b';
   Print("Önce:  a = ",a, "  b = ",b); 
//--- sola kaydır
   b=a<<1;
   Print("Sonra:   a = ",a, "  b = ",b); 
// Sonuç şöyle olur:
// Önce:  a = 97   b = 98
// Sonra:   a = 97   b = -62

Kaydırma değerindeki bitlerin sayısı kaydırılan değişkenin uzunluğuna eşit veya daha büyük ise kaydırma işlemi tavsiye edilmez, böyle bir işlemin sonucu tanımsızdır.

Bitsel 'VE' İşlemi

İkili olarak kodlanmış x ve y gösterimlerinin bitsel 'VE' işlemi. İfade, x ve y değişkenlerinin her ikisinin de sıfır içermediği tüm hanelerde 1 (DOĞRU) değerini alırken, diğer tüm hanelerde 0 (YANLIŞ) değerini alır.

b = ((x & y) != 0);

Örnek:

   char a='a',b='b';
//--- VE işlemi
   char c=a&b;
   Print("a = ",a,"  b = ",b);
   Print("a & b = ",c);
// Sonuç şöyle olur:
// a = 97   b = 98
// a & b = 96

Bitsel 'VEYA' İşlemi

x ve y ikili ifadelerinin bitsel 'VEYA' işlemi. İfade değeri, x ve y değerlerinin 0 içerdiği tüm hanelerde 1 değerini alırken, diğer tüm hanelerde ise 0 değerini alır.

b = x | y;

Örnek:

   char a='a',b='b';
//--- VEYA işlemi
   char c=a|b;
   Print("a = ",a,"  b = ",b);
   Print("a | b = ",c);
// Sonuç şöyle olur:
// a = 97   b = 98
// a | b = 99

Bitsel 'Özel VEYA' işlemi

İkili x ve y ifadesinin bitsel 'özel VEYA' (eXclusive OR) işlemi. İfade değeri, x ve y değişkenlerinin farklı değerler aldığı tüm hanelerde 1, diğer tüm hanelerde ise 0 olur.

b = x ^ y;

Örnek:

   char a='a', b='b';
//--- Özelleştirilen VEYA işlemi
   char c=a^b;
   Print("a = ",a,"  b = ",b);
   Print("a ^ b = ",c);
// Sonuç şöyle olur:
// a = 97   b = 98
// a ^ b = 3

Bitsel işlemler sadece tamsayılarla gerçekleştirilir.

Ayrıca Bakınız

Öncelik Kuralları