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 DHT11 Kullanımı - Arduino Kod - Arduino Termometre yapımı

Arduino ile voltaj okuma | Arduino ile voltmetre | Arduino ADC örnek Kod

Arduino Oled Ekran Kullanımı | SSD1306 Detaylı Tüm Fonksiyonlar

Arduino 16x2 (2x16) LCD Ekran Kullanımı | 4bit parallel mode - 16x2 LCD ekran pin bağlantıları

Arduino ile Yüksek Voltaj Ölçme | SMPS DC Bara Ölçümü

Arduino UNO güç özellikleri

Arduino LM35 Sıcaklık Sensörü İle Sıcaklık Ölçme

16x2 Lcd Türkçe Karakter Sorunu Çözüldü! Arduino LCD ekrana yazı yazma - Arduino 16x2 Lcd ekran kullanımı

Arduino Röle Modül Kullanımı

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