08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

C ve Sistem Programcıları Derneği - C Ders Notları - Necati Ergin<br />

Negatif sayıların kullanılmadığı düşünülürse 4 bitlik bir alanda 0 – 15 aralığındaki değerler<br />

tutulabilir. Bir değişkenin değerinin 0 – 15 aralığında değiştiğini varsayalım: Bazı<br />

durumlarda 4 bitle ifade edilebilen bir değerin 2 ya da 4 byte yer kaplayan bir tamsayı<br />

türünde tutulması istenmeyebilir. 32 bitlik bir alan içinde aslında 4 ayrı değer tutulabilir,<br />

değil mi?<br />

Bir sayının belirli bir bit alanında bir tamsayı değerini tutmak için ne yapılabilir? Önce<br />

sayının ilgili bitleri sıfırlanır. Bu amaç için yukarıda yazılan clearbits gibi bir işlev<br />

çağrılabilir. Daha sonra sayı, uygun bir değerle bitsel veya işlemine sokulabilir. Aşağıdaki<br />

işlev tanımını inceleyin:<br />

void putvalue(unsigned int*ptr, size_t startbit, size_t nbits, int value)<br />

{<br />

clearbits(ptr, startbit, nbits);<br />

*ptr |= value = 0; --i)<br />

putchar (x >> i & 1 ? '1' : '0');<br />

}<br />

int main()<br />

{<br />

int val;<br />

}<br />

printf("bir sayi giriniz : ");<br />

scanf("%d", &val);<br />

showbits(val);<br />

return 0;<br />

Aşağıda aynı işi değişik bir biçimde yapan showbits2 isimli bir işlevin tanımı yer alıyor:<br />

436

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!