C++ Dersleri | Bit işlemleri, Bit Clear ve Bit Set

 C++ dersleri bit işlemlerinde belki de en çok kullandığımız bit işlemlerinden biri bit set diğeri de bit clear dir desek yanılmış olayız herhalde, bitwise OR konusunda örneğini vermiştik burda da kullanalım:

int indexOfBitToSet = 5;
PORTB |= 1LL << indexOfBitToSet;

5. indexteki bit 'i set eder. portB 'nin 5 numaralı pini Set edilmiş (HIGH) olur. Burada diğer pin konfigürasyonları bu durumdan etkilenmezler.

PORTB 'nin 0000 0000b olduğunu düşünelim,

1 << 5 bize 0010 0000b değerini verir, bu değerle 0000 0000b değeri orlanırsa, gayet basitçe 5. indexin 1 olduğunu görebiliyoruz.

Aynı şekilde bir bit dizesindeki belirli bir biti CLEAR (0) yapmak için bitwise and kullanıyoruz:

  int indexOfBitToClear = 5;
  PORTB &= ~(1LL << indexOfBitToClear);

şimdide PORTB 'nin tümünün HIGH olduğunu varsayalım, 1111 1111b, 1 << 5 'den 0010 0000b değeri gelir, ifadenin başında yer alan ~ işaretiyle bit dizisindeki tüm değerler inverse oldu, yani tüm 1 ler 0, tm sıfırlar 1 oldu -> 1101 1111, son olarak da PORTB nin değeri olan 1111 1111 ü 1101 1111 ile and işlemine tabi tuttuğumuz vakit, diğer hiçbir bit eklilenmeden sadece 5. intexteki bitin Clear olduğunu görebiliyoruz.

Herkese kolay gelsin!

Önceki konu : Set Bitleri sayma

Sonraki konu : Bit Kopyalama

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