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

Yukarıdaki tablo şöyle özetlenebilir: Terimlerinden ikisi de aynı değere sahip ise, üretilen<br />

değer 0, terimlerden biri diğerinden farklı ise üretilen değer 1 olur.<br />

#include <br />

int main()<br />

{<br />

unsigned int x = 0x1BC5; /* x = 0001 1011 1100 0101 */<br />

unsigned int y = 0X3A0D; /* y = 0011 1010 0000 1101 */<br />

unsigned int z = x ^ y; /* z = 0010 0001 1100 1000 */<br />

printf("z = %X\n", z); /* z = 21C8 */<br />

return 0;<br />

}<br />

Bir tamsayı, arka arkaya aynı değerle bitsel özel veya işlemine sokulursa, tamsayının<br />

kendi değeri elde edilir:<br />

#include <br />

int main()<br />

{<br />

unsigned int a = 0X1BC5; /* a = 0001 1011 1100 0101 */<br />

unsigned int b = 0X3A0D; /* b = 0011 1010 0000 1101 */<br />

a ^= b; /* a = 0010 0001 1100 1000*/<br />

a ^= b; /* b = 0001 1011 1100 0101 */<br />

printf("a = %X\n", a); /* a = 0X1BC5 */<br />

}<br />

return 0;<br />

Bazı şifreleme algoritmalarında "özel veya" işleminin bu özelliğinden faydalanılır.<br />

Bitsel Veya İşleci<br />

"Bitsel veya" (bitwise or operator) işleci, işleç öncelik tablosunun 10. seviyesindedir.<br />

Öncelik yönü soldan sağadır. Yan etkisi yoktur, terimleri nesne gösteren bir ifade ise<br />

bellekteki değerlerini değiştirmez. Değer üretmek için terimi olan tamsayıların karşılıklı<br />

bitlerini "veya" işlemine sokar. Bitsel veya işlecine ilişkin işlem tablosu aşağıda veriliyor:<br />

Bitsel veya işleci, terimlerinin karşılıklı bitlerinin "veya" işlemine sokulmasıyla elde edilen<br />

değeri üretir:<br />

431

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

Saved successfully!

Ooh no, something went wrong!