Bit ayarlama ve temizleme
- C kursu
- Orta seviye
- Ders 101/116
- 5 dk
Belirli bitleri ayarlamayı ve temizlemeyi öğrenirsin.
Bit ayarlama ve temizleme
Bir biti açmak için bitsel VEYA (|=), kapatmak için bitsel VE ile değil (&= ~) kullanırsın. Değiştirmek için ise XOR (^=) kullanılır.
Örnek: flags |= 0x01; birinci biti açar. flags &= ~0x01; birinci biti kapatır; ~0x01 tüm bitleri 1 yapıp birinci biti 0 yapar. flags ^= 0x01; birinci bitin durumunu tersine çevirir. Bu üç işlem, bit bayraklarını yönetmenin temelidir. Her bit bağımsızdır; birini değiştirmek diğerlerini etkilemez. Bu yüzden tek bir tamsayı içinde birçok bayrağı sıkıca saklayabilirsin.
Çoklu bit yönetimi
Birden çok biti aynı anda yönetmek için maskeleri birleştirirsin. Bitsel VEYA ile maskeleri toplayarak tek bir işlemde birkaç biti açabilirsin.
Örnek: flags |= 0x01; flags |= 0x04; birinci ve üçüncü bitleri açar. Bu işlemlerden sonra flags değeri 5 olur (ikili 00000101). Daha sonra flags &= ~0x01; ile birinci biti kapatırsan; flags 4 kalır (ikili 00000100). Her işlem yalnızca ilgili biti değiştirir; diğerleri korunur. Bu, izin sistemlerinde ve durum makinelerinde yaygın bir desendir.
Uygulama Bit ayarla ve temizle
unsigned int flags = 0x00; tanımla. flags |= 0x01; ve flags |= 0x04; ile bit aç. printf("%u\n", flags); yazdır. flags &= ~0x01; ile bit kapat. printf("%u\n", flags); yazdır.
Başlangıç kodu
#include <stdio.h>
// flags değişkenini 0 olarak tanımla
// iki bit aç ve yazdır
// bir bit kapat ve yazdır
int main(void) {
return 0;
}Örnek çözüm
#include <stdio.h>
int main(void) {
unsigned int flags = 0x00;
flags |= 0x01;
flags |= 0x04;
printf("%u\n", flags);
flags &= ~0x01;
printf("%u\n", flags);
return 0;
}Beklenen çıktı
5 4
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bit işlemlerini eşle
| Kavram | Anlamı |
|---|---|
|= |
Bit aç |
&= ~ |
Bit kapat |
^= |
Bit ters çevir |
& |
Bit sına |
2 flags &= ~0x01 ne yapar?
- Değeri 1 yapar
- Tüm bitleri sıfırlar
- Birinci biti açar
- Birinci biti kapatır Doğru cevap
Açıklama: &= ~0x01 birinci biti 0 yapar; diğerleri korunur.
3 Bit temizleme ifadesini tamamla
flags &= ~____;
flags &= ~0x01;
Açıklama: flags &= ~0x01; birinci biti kapatır.