27.11.2012 Views

Sayı - Pardus eDergi

Sayı - Pardus eDergi

Sayı - Pardus eDergi

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

<strong>Pardus</strong>-Linux e-dergi<br />

karakterleri iki tırnaktan sonra yazılan parametrelerle birebir eşleştirilir.<br />

Örnek:<br />

int x, y;<br />

x = 125;<br />

y = 200;<br />

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

printf fonksiyonunun yukarıdaki şekilde çağrılmasıyla x ve y değişkeni<br />

içindeki değerler ekrana onluk sistemde yazdırılacaktır.<br />

Format karakterleri yerine eşlenen değişkenlerin içerisindeki değerler<br />

ekrana yazılır. Format karakterleri sayıların ekrana nasıl yazılacağını<br />

belirtmekte kullanılır.<br />

format Anlamı karakteri<br />

%d int türünü desimal sistemde yazar.<br />

%ld long türünü desimal sistemde yazar<br />

%x unsigned int türünü hexadecimal sistemde yazar.<br />

%X unsigned int türünü hexadecimal sistemde yazar.(semboller büyük<br />

harfle)<br />

%lx unsigned long türünü hexadecimal sistemde yazar.<br />

%u unsigned int türünü decimal sistemde yazar.<br />

%o unsigned int türünü oktal sistemde yazar.<br />

%f float ve double türlerini desimal sistemde yazar.<br />

%lf double türünü desimal sistemde yazar.<br />

%e gerçek sayıları üstel biçimde yazar.<br />

%c char veya int türünü karakter görüntüsü olarak yazdırır.<br />

%s string olarak yazdırır.<br />

%lf long double türünü desimal sistemde yazdırır.<br />

Yukarıdaki tabloda görüldüğü gibi double türü hem %f format karakteri<br />

hem de %lf format karakteri ile yazdırılabilmektedir. Ama %lf<br />

Mart 2009 <strong>Sayı</strong> 6<br />

C ile PROGRAMLAMA II<br />

M. Talha İLHAN mtalhailhan@gmail.com<br />

4<br />

(okunabilirliği artırdığı için) daha çok tercih edilmektedir.<br />

Yukarıdaki tabloya göre unsigned int türünden bir sayıyı aşağıdaki<br />

şekillerde yazdırabiliriz :<br />

unsigned int u;<br />

printf("%u", u); // u sayısını 10'luk sistemde yazar<br />

printf("%o, u); // u sayısını 8'lik sistemde yazar<br />

printf("%x, u); // u sayısını 16'lık sistemde yazar<br />

short bir sayıyı yazarken d o u ya da x karakterlerinden önce h karakterini<br />

kullanıyoruz :<br />

short int sh;<br />

printf("%hd", sh); // 10'luk sistemde yazar<br />

unsigned short int unsh;<br />

printf("%hu", unsh); // 10'luk sistemde yazar<br />

printf("%ho", unsh); // 8'lik sistemde yazar<br />

printf("%hx", unsh); // 16'lık sistemde yazar<br />

long bir sayıyı yazarken d o u ya da x karakterlerinden önce l karakterini<br />

kullanıyoruz :<br />

long int lo;<br />

printf("%ld", lo); // 10'luk sistemde yazar<br />

unsigned long int unlo;<br />

printf("%lu", unlo); // 10'luk sistemde yazar<br />

printf("%lo", unlo); // 8'lik sistemde yazar<br />

printf("%lx", unlo); // 16'lık sistemde yazar<br />

Yukarıdaki bilgilerde unsigned bir tamsayıyı printf fonksiyonuyla 8'lik ya<br />

da 16'lık sistemde yazdırabileceğimizi gördük. Peki signed bir tamsayıyı<br />

8'lik ya da 16'lık sistemde yazdıramaz mıyız? Yazdırırsak ne olur? Söz<br />

konusu signed tamsayı pozitif olduğu sürece bir sorun olmaz. <strong>Sayı</strong>nın<br />

işaret biti 0 olduğu için sayının nicel büyüklüğünü etkilemez. Yani doğru<br />

sayı ekrana yazar, ama sayı negatifse işaret biti 1 demektir. Bu durumda

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

Saved successfully!

Ooh no, something went wrong!