Özet - İleri bitsel
- C kursu
- Orta seviye
- Ders 105/116
- 5 dk
Maskeleme, kaydırma ve hack'leri birleştirerek bir yetki sistemi yazarsın.
Bitsel işlem özeti
Bu özette maskeleme, ayarlama, kaydırma ve paketleme kavramlarını birleştiren bir program yazacaksın. Program, bir ham değere bit yerleştirir, sonra kaydırma ve maskeleme ile bileşenleri çıkarır.
Yapı şu şekilde: raw değişkenine |= ile bitler eklersin (kaydırma kullanarak). Sonra >> ve & ile bu bitleri tekrar çıkarırsın. Bu, gerçek donanım yazmaçlarının simülasyonudur: bir yazıca bayrak yazarsın, sonra okurken ayrıştırırsın. Tek bir tamsayı hem kimlik hem durum taşır; bu, gömülü sistemlerde bellek tasarrufunun temelidir.
Uygulama Bitsel özet program yaz
unsigned int raw = 0; tanımla. raw |= (5 << 1); ile beşi bir basamak sola kaydırıp yerleştir. raw |= 1; ile birinci biti aç. printf("raw=%u\n", raw); yazdır. unsigned int id = (raw >> 1) & 0x0F; ile kimliği çıkar. unsigned int active = raw & 1; ile durum bitini al. printf("id=%u active=%u\n", id, active); yazdır.
Başlangıç kodu
#include <stdio.h>
// raw değişkenini 0 olarak tanımla
// |= ile bitler ekle (kaydırma kullan)
// id ve active değerlerini çıkar
// sonuçları yazdır
int main(void) {
return 0;
}Örnek çözüm
#include <stdio.h>
int main(void) {
unsigned int raw = 0;
raw |= (5 << 1);
raw |= 1;
printf("raw=%u\n", raw);
unsigned int id = (raw >> 1) & 0x0F;
unsigned int active = raw & 1;
printf("id=%u active=%u\n", id, active);
return 0;
}Beklenen çıktı
raw=11 id=5 active=1
Özet
Bu grupta ileri bitsel işlemleri öğrendin. Maskeleme, bit ayarlama ve temizleme, kaydırma, bit hack'leri ve pack/unpack kavramlarını gördün. Bunları birleştirerek tek bir tamsayıda kimlik ve durum taşıyan bir program yazdın.
Bitsel işlemler, gömülü sistemlerden ağ protokollerine kadar her yerde karşına çıkar. Tek bir tamsızı içinde birden çok değer sıkıştırmak, bellek ve bant genişliği tasarrufu sağlar. Sonraki gruplarda typedef ile tür soyutlama ve son olarak orta seviye final projesi seni bekliyor. Bitsel beceri, düşük seviyeli programlamanın olmazsa olmazıdır.
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Hangi işlem bir biti açar?
- &=
- >>
- |= Doğru cevap
- ^
Açıklama: |= bitsel VEYA ile biti 1 yapar.
2 Bitsel işlemleri eşle
| Kavram | Anlamı |
|---|---|
|= |
Bit ayarla |
&= |
Bit temizle |
<< |
Sola kaydır |
& 0x0F |
Alt dört bit |