08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

C ve Sistem Programcıları Derneği - C Ders Notları - Necati Ergin<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 = 0011 1011 1100 1101 */<br />

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

}<br />

return 0;<br />

0 biti bitsel veya işleminde etkisiz elemandır. 1 biti bitsel ve işleminde yutan elemandır.<br />

Aşağıdaki programda bitsel ve, özel veya, veya işleçlerinin ürettikleri değerler ikilik sayı<br />

sisteminde ekrana yazdırılıyor. Programı derleyerek çalıştırın:<br />

#include <br />

#include <br />

void bit_print(int val)<br />

{<br />

char bits[sizeof(val) * 8 + 1];<br />

}<br />

itoa(val, bits, 2);<br />

printf("%10d %032s\n", val, bits);<br />

int main()<br />

{<br />

int x, y;<br />

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

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

bit_print(x);<br />

bit_print(y);<br />

printf("bitsel ve islemi\n");<br />

bit_print(x & y);<br />

printf("*********************************************************\n");<br />

printf("bitsel ozel veya islemi\n");<br />

bit_print(x ^ y);<br />

printf("*********************************************************\n");<br />

printf("bitsel veya islemi\n");<br />

bit_print(x | y);<br />

}<br />

return 0;<br />

Bitsel İşleçler Kısa Devre Davranışı Göstermez<br />

Bitsel işleçler kısa devre davranışına sahip değidir. Yani bu işleçlerin her iki terimi de<br />

mutlaka işlenir.<br />

Bitsel İşlemli Atama İşleçleri<br />

Bitsel değil işlecinin dışında, tüm bitsel işleçlere ilişkin işlemli atama işleçleri vardır. Daha<br />

önce de söylendiği gibi bitsel işleçlerin yan etkileri (side effect) yoktur. Bitsel işleçler<br />

terimleri olan nesnelerin bellekteki değerlerini değiştirmez. Eğer terimleri olan nesnelerin<br />

değerlerinin değiştirilmesi isteniyorsa bu durumda işlemli atama işleçleri kullanılabilir:<br />

432

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

Saved successfully!

Ooh no, something went wrong!