Peak2Peak
Aktif Üye
- Katılım
- 27 Haziran 2020
- Mesajlar
- 289
C:
#include <stdio.h>
#include <stdint.h>
struct date {
int d : 4;
int m : 4;
};
int main()
{
uint8_t a;
printf("Size of date is %lu bytes\n",
sizeof(struct date));
struct date dt = {1,3};
printf("Date is %d/%d", dt.d, dt.m);
a=dt.d|dt.m;
printf("\n%d",a);
}
C 'de hiç bilmediğim yerlere bakıyordum.Bit field dedikler şeyi ile karşılaştım.Donanımda kullanılıyormuş..Bazı yerlerde kafa karıştı.
struct içinde 4 bitlik iki değişkenim var.size off ile baktığım 4 bayt tuttuğunu gördüm.4 bayt çok fazla galiba sistemden sisteme değişiyormuş.
bu bitlerin sıralamasını anlayamadım.4 bayt içinde nasıl sıralanıyor.
2 adet 4 biti or yapıp toplamayı tek bayt içinde yazmayı denedim.sonuçlar istediğim gibi çıkmadı.Bitlerin yeri aynı olunca sonuç değişmiyor.kaydırmam gerekiyor sanırım ama nasıl sıraladığını bulamadım yardımcı olabilir misin?