Arduino Bitsel Operatörler

Bitsel operatörler değişken ve veriler üzerinde bit seviyesinde VE, VEYA, DEĞİL, XOR, bit kaydırma gibi işlemler yapmak için kullanılan operatörlerdir.

Arduino dilinde 6 adet bitsel operatör vardır. Bunlar;

  1. Bitsel VE Operatörü “&
  2. Bitsel VEYA Operatörü “|
  3. Bitsel DEĞİL Operatörü “~
  4. Bitsel XOR Operatörü “^
  5. Sola Kaydırma Operatörü “<<
  6. Sağa Kaydırma Operatörü “>>

1- Bitsel VE (&) Operatörü:

Operatörün solundaki değerle, sağındaki değeri bitsel VE işlemine tabi tutmak için kullanılır. Operatörün sembolü “&” karakteridir.

Bilindiği üzere VE (AND) işlemi yalnızca her iki veri de 1 (true) ise 1 (true) sonuç verir. Diğer durumlarda 0 yani (false) sonuç döndürür.

VE (AND) işlemine tabi tutulmuş A ve B verisinin Y çıkışındaki doğruluk tablosu aşağıdaki gibidir.

Yukarıdaki doğruluk tablosuna göre A ve B verisinin yalnızca her ikisi de True ise True çıkış verdiği, herhangi biri ya da her ikisi de yanlış ise yanlış çıkış verdiği görülüyor.

Örnek olarak 22 ve 29 değerinde iki adet binary sayımız olsun ve bu iki sayıyı bitsel VE operatörüne tabi tutalım;

A = 22 sayısının binary değeri; 10110

B = 29 sayısının binary değeri; 11101

Y = A&B

Yukarıdaki doğruluk tablosunu göz önünde bulundurursak

Yukarıdaki kod sadece örnek amaçlı verilmiştir gerçek kod değildir. Yukarıdaki örnekte sadece alt alta 1 gelen veriler çıkışa 1 olarak yansımıştır. Diğerleri 0 olarak yansımıştır.

Şimdi örneğimizi gerçek kodlarla yapalım.

Örnek olarak 22 sayısı ile 29 sayısını bitsel VE işlemine tabi tutalım;

 

2- Bitsel VEYA (|) Operatörü:

Operatörün solundaki değerle, sağındaki değeri bitsel VEYA işlemine tabi tutmak için kullanılır. Operatörün sembolü “|” karakteridir.

Bilindiği üzere VEYA (OR) işlemi iki girdiden herhangi biri “1” (true) ise “1” (true) sonuç verir. Diğer durumlarda “0” yani (false) sonuç döndürür.

VEYA (OR) işlemine tabi tutulmuş A ve B verisinin Y çıkışındaki doğruluk tablosu aşağıdaki gibidir.

Yukarıdaki doğruluk tablosuna göre A ve B verisinden herhangi biri “1” yani true olduğunda Y çıkışı “1” yani true değer alır. Eğer girdilerden her ikisi de “0” yani false ise, çıkıştan “0” yani false değer alınır.

Örnek olarak 22 ve 29 değerinde iki adet binary sayımız olsun ve bu iki sayıyı bitsel VEYA operatörüne tabi tutalım;

A = 22 sayısının binary değeri; 10110

B = 21 sayısının binary değeri; 10101

Y = A|B

Yukarıdaki doğruluk tablosunu göz önünde bulundurursak ve her bir biti alt alta VEYA işlemine tabi tutarsak;

Yukarıdaki örnek gösterimde doğruluk tablosunda olduğu gibi alt alta gelen bitlerden herhangi biri ya da her ikisi de “1” olan bitler Y çıkışında 1 olarak yansımıştır. Yalnızca alt alta 0 gelen bitler çıkışa 0 olarak yansımıştır.

Şimdi yukarıdaki örneği arduino kodları ile yapalım;

3- Bitsel Değil (~) Operatörü:

Operatörün sağındaki değeri bitsel DEĞİL işlemine tabii tutar. Operatörün sembolü (~) karakteridir. Bitsel DEĞİL operatörü bir sayının tüm bitlerini tersine çevirir. Yani “1” olan bitleri “0”, “0” olan bitleri “1” yapar.

Şimdi değiş işleminin girdi ve çıktı doğruluk tablosunu inceleyelim;

Doğruluk tablosunda görüldüğü üzere “1”  yani true olan girişler çıkışa “0” yani false olarak yansıyor. Tam tersi, girişte “0” olan değer ise çıkışta “1” oluyor.

Şimdi isterseniz decimal 125 sayısın değil işlemine tabi tutalım;

Şimdi yukarıdaki örneği arduino kodları ile yapalım;

4- Bitsel XOR Operatörü:

Bitsel XOR operatörü, operatörün solundaki değer ile sağındaki değeri XOR işlemine tabii tutar. Operatörün semblü “^” karakteridir. XOR operatörü yalnızca iki girdiden herhangi biri “1” yani true ise, “1” yani true sonuç döndürür. Eğer XOR işlemine tabi tutulan bitlerin her ikiside “1” ya da her ikisi de “0” ise, “0” yani false sonuç döndürür.

Yukarıdaki örneği arduino ile yapacak olursak;

Görüldüğü üzere karşılıklı bitlerden birbirinin zıttı olanlar “1”, birbirinin aynı olan bitler ise “0” değer döndürdüler.

5- Sola Kaydırma (<<) Operatörü:

Sola kaydırma operatörü, bir değerin en sağdaki bitlerinden istediğimiz kadarını sola kaydırarak, sağ tarafa “0” değeri yerleştirir. En soldan taşan bir bitler ise kaybolur.

Sözdizimi: sayi << 3;

Örnek olarak 187 sayısını 3 bit sola kaydıralım;

187 sayısının binary değeri 10111011 ‘dir. Biz bu değeri 3 bit sola kaydırırsak aşağıda kırmızı olarak belirtilen 3 bit kaybolur ve kaydırılan değer kadar aşağıda yeşil olarak belirtilen 0 değerleri eklenir;

187 << 3 = 10111011000 yeni sayımız ise 11011000 = 216 oldu.

Şimdi bu örneği arduino kodları ile yapalım;

6- Sağa Kaydırma (>>) Operatörü:

Sola kaydırma operatörünün tam tersi işlem yapar. Belirlenen değer kadar biti sağa kaydırma işlemi yapar. Sağa kaydırma değeri kadar değerin sol tarafına “0” ekler, sağdan taşan bitler ise yok olur.

Sözdizimi: sayi >> 3;

Örnek olarak 187 sayısını 3 bit sola kaydıralım;

187 sayısının binary değeri 10111011 ‘dir. Biz bu değeri 3 bit sola kaydırırsak aşağıda kırmızı olarak belirtilen 3 bit kaybolur ve kaydırılan değer kadar aşağıda yeşil olarak belirtilen 0 değerleri eklenir;

187 << 3 =  00010111011 yeni sayımız ise 00010111 = 23 oldu.

Şimdi bu örneği arduino kodları ile yapalım;

 

Yorum Yap