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 />

x = x >= y<br />

x = x & y yerine x &= y<br />

x = x ^ y yerine x ^= y<br />

x = x | y yerine x |= y<br />

kullanılabilir.<br />

Bitsel özel veya işlemli atama işleci, tamsayı türlerinden iki değişkenin değerlerinin, geçici<br />

bir değişken olmaksızın takas (swap) edilmesinde de kullanılabilir:<br />

#include <br />

int main()<br />

{<br />

int x, y;<br />

printf("iki sayi giriniz ");<br />

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

printf("x = %d\ny = %d\n", x, y);<br />

x ^= y ^= x ^= y;<br />

printf("x = %d\ny = %d\n", x, y);<br />

}<br />

return 0;<br />

Yukarıdaki programda, x ve y değişkenlerinin değerleri bitsel özel veya işlecinin<br />

kullanılmasıyla takas ediliyor.<br />

Bitsel İşleçlerin Kullanılmasına İlişkin Bazı Temalar<br />

Bitsel işleçlerin kullanılmasına daha çok sistem programlarında rastlanır. Sistem<br />

programlarında bir tamsayının bitleri üzerinde bazı işlemler yapılması sıklıkla gerekli olur.<br />

Aşağıda bitsel düzeyde sık yapılan işlemler açıklanıyor:<br />

Bir Tamsayının Belirli Bir Bitinin Birlenmesi<br />

Buna tamsayının belirli bir bitinin "set edilmesi" de denebilir. Bir tamsayının belirli bir<br />

bitini birlemek için, söz konusu tamsayı, ilgili biti 1 olan ve diğer bitleri 0 olan bir sayıyla<br />

"bitsel veya" işlemine sokulmalıdır. Çünkü bitsel veya işleminde 1 yutan eleman 0 ise<br />

etkisiz elemandır.<br />

Aşağıdaki örnekte bir sayının 5. biti birleniyor:<br />

#include <br />

int main()<br />

{<br />

int ch = 0x0041; /* ch = 65 (0000 0000 0100 0001) */<br />

int mask = 0x0020; /* mask = 32 (0000 0000 0010 0000) */<br />

ch |= mask; /* ch = 97 (0000 0000 0110 0001) */<br />

printf("ch = %d\n", ch); /* ch = 97 */<br />

}<br />

return 0;<br />

x bir tamsayı k da bu sayının herhangi bir bit numarası olmak üzere bir tamsayının k.<br />

bitini birleyecek bir ifade şu biçimde yazılabilir:<br />

x |= 1

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

Saved successfully!

Ooh no, something went wrong!