Her Yönüyle C
Would you like to react to this message? Create an account in a few clicks or log in to continue.
Her Yönüyle C

Hepsi Burada
 
AnasayfaAnasayfa  PortalliPortalli  GaleriGaleri  AramaArama  Latest imagesLatest images  Kayıt OlKayıt Ol  Giriş yapGiriş yap  

 

 OPERATORLER

Aşağa gitmek 
YazarMesaj
Admin
Admin
Admin


Erkek
Mesaj Sayısı : 804
Yaş : 35
Location : KoCaElİ
Kayıt tarihi : 29/10/07

Character sheet
Field:
OPERATORLER Left_bar_bleue100/100OPERATORLER Empty_bar_bleue  (100/100)

OPERATORLER Empty
MesajKonu: OPERATORLER   OPERATORLER Icon_minitimePtsi Kas. 12, 2007 2:50 am

GirişOperatörler, değişkenler veya sabitler üzerinde matematiksel ve karşılaştırma işlemlerini yapan simgelerdir. Bazı kitaplarında operatör yerine işlemci kelimesi de kullanılmaktadır. Derslerimiz boyunca bu iki ismi biribiri yerine kullanabiliriz. ANSI C'de dört tip operatör tanımlıdır.


Aritmetik OperatörlerDeğişken veya sabitler üzerinde temel aritmetik işlemleri gerçekleyen operatörlerdir. Bunlar Tablo 3.1'de listelenmiştir.

Tablo 3.1: Aritmetik Operatörler



Operatör
Açıklama
Örnek
Anlamı

+
toplama
x+y
x ve y nin toplamı

-
çıkarma
x-y
x ve y nin farkı

*
carpma
x*y
x ve y nin çarpımı

/
bölme
x/y
x ve y nin oranı

%
artık bölme
x%y
x/y den kalan sayı


Atama OperatörleriBu operatörler bir değişkene , bir sabit eşitlemek için kullanılır.
Birleşik atama: bazı ifadelerde işlem operatörü ile atama operatörü birlikte kullanılarak, ifadeler daha kısa yazılabilir. Eğer ifade
değişken = değişken [operatör] ifade;

şeklinde ise, daha kısa bir biçimde değişken [operatör]= ifade;

olarak yazılabilir. Bu operatörler Tablo 3.2'de listelenmiştir.
Tablo 3.2: Atama Operatörleri



Operatör
Açıklama
Örnek
Anlamı

=
atama
x=7;
x=7;

+=
ekleyerek atama
x+=3
x=x+3

-=
eksilterek atama
x-=5
x=x-5

*=
çarparak atama
x*=4
x=x*4

/=
bölerek atama
x/=2
x=x/2

%=
bölüp, kalanını atama
x%=9
x=x%9

++
bir arttırma
x++ veya ++x
x=x+1

--
bir azaltma
x-- veya --x
x=x-1



Program 3.1: Aritmetik ve atama operatörlerinin kullanımı




[color=gray] 1:
/* 03prg01.c: Aritmetik ve atama operatorlerinin kullanimi */
2:
3: #include <stdio>
4:
5: main()
6: {
7: int x, y; /* yerel degikenlerin bildirimi */
8:
9: x = 1; /* x in baslangic degeri */
10: y = 3; /* y nin baslangic degeri */
11:
12: printf(" x = %d ve y = %d, olarak veriliyor.\n", x, y);
13:
14: x = x + y;
15: printf("x <- x + y atamsinin sonucunda x=%d dir\n", x);
16:
17: x = 1; /* x e tekrar 1 degeri ataniyor */
18: x += y;
19: printf("x += y atamasinin sonucunda x=%d dir\n", x);
20:
21: return 0;
[color:b17b=gray:b17b]22: }
Bu program, x = x + y ataması ile x += y atamasın aynı anlamda olduğu gösterir. 9. ve 10. satırlarda x ve y değişkenlerine başlangıç değerleri atanmıştır. Bu değerler 12. satırda ekrana Ders 5: Temel G/Ç Fonksiyonları ayrıntılı olarak işlenecek olan printf() fonksiyonu ile ekrana yazdırılmıştır. 14. ve 18. satırdaki ifadeler ekrana yazdırıldığında sonucun değişmediği görülür.

DERLEME ve ÇALIŞTIRMA



Turbo C (MS DOS)
GCC (Linux)

C:\TC> tcc 03prg01.c
C:\TC> 03prg01
$ gcc 03prg01.c -o 03prg01
$ ./03prg01

ÇIKTI




x = 1 ve y = 3, olarak veriliyor.
x <- x + y atamsinin sonucunda x=4 dir
x += y atamasinin sonucunda x=4 dir

Karşılaştırma Operatörleri ve Mantıksal OperatörlerTablo 3.3'de listelenen bu operatörler, sayısal değerleri veya karakterleri karşılaştırmak için kullanılır. Bu operatörlerin kullanımı Ders 7: Karşılaştırma Deyimleri kısmında gösterilecektir.

Tablo 3.3: Karşılaştırma Operatörleri ve Mantıksal Operatörler



Operatör
Açıklama
Ornek
Anlamı

>
büyüktür
x>y
x, y den büyük mü?

<
küçüktür
x<y>=
büyük-eşittir
x>=y
x, y den büyük yada eşit mi?

<=
küçük-eşittir
x<y>2 && x<y>2 || x<y
x 2 den büyük VEYA y den küçük mü?


Bit Düzeyinde İşlem Yapan OperatörlerSayısal veya karakter değişkenlerin üzerinde bit düzeyinde mantıksal işlem yapan operatörlerdir. Bunlar Tablo 3.4'te listelenmiştir.

Tablo 3.4: Bit düzeyinde işlem yapan operatörler



Operatör
Açıklama
Örnek
Sonucu

&
ve
10 & 25 (00001010 & 00011001)
8 (00001000)

|
veya
10 | 25 (00001010 | 00011001)
27 (00011011)

^
özel veya
10 ^ 25 (00001010 ^ 00011001)
19 (00010011)

~
değil
~10 (00001010)
245 (11110101)

>>
sağa kaydırma
12 >> 3 (00001100 >> 3)
1 (00000001)

<<
sola kaydırma
12 << 3 (00001100 << 3)
96 (01100000)
Bit düzeyinde işlem yapan operatörler C dilinde sıkça kullanılmakatadır. Örneğin Ders 4: Kütüphane Fonksiyonları kısmında görülecek olan ctype.h kütphanesinde tanımlı toascii(c) makro fonksiyonu, c sayısı ile verilen ASCII koda sahip karakteri verir. Bu fonksiyon aslında Program 3.2'deki işlemi yapmakatadır.

Program 3.2: Bit düzeyinde VE işlemi




[color=gray] 1:
/* 03prg02.c:
[color=gray] 2:
Bir tamsayının ASCII karakter kod karşılığının bulunması.
[color:b17b=gray:b17b] 3: (ctype.h kütüphanesinde tanımlanan toascii(c) makrosuna ait kod) */
4:
5: #include <stdio>
6:
7: int c=65; /* gloabal değişken bildirimi */
8: char kr;
9:
10: void main()
11: {
12: kr = c & 0x7f; /* kr = c & 127 */
13: printf("%d sayisinin ASCII karsiligi %c\n",c,kr);
[color:b17b=gray:b17b]14: }
12. satırda kr değişkenine kr = 65 & 127 (01000001 & 01111111) işlemi kr = 65 (01000001) değeri atanmaktadır ve bu 'A' karakteridir. Eğer c>127 olursa 12. satırdaki işlemle bu sayı maskelencektir. Örneğin c=163 olduğunda kr=163 & 127 (10100011 & 01111111) = 35 (00100011) işlemiyle kr değişkenine 35 sayısına karşılık gelen '#' karakteri atanır. Oysa kr=c ataması yapılsaydı: k=163 (10100011) = 'ú'. Öyle ise 13. satırdaki işlemle kr = c & 127 = c-128 ataması gerçekleştirilmektedir.

DERLEME ve ÇALIŞTIRMA



Turbo C (MS DOS)
GCC (Linux)

C:\TC> tcc 03prg02.c
C:\TC> 03prg02
$ gcc 03prg02.c -o 03prg02
$ ./03prg02

ÇIKTI




65 sayisinin ASCII karsiligi A
Sayfa başına dön Aşağa gitmek
https://cprogramlama.yetkin-forum.com
 
OPERATORLER
Sayfa başına dön 
1 sayfadaki 1 sayfası

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
Her Yönüyle C :: C Programlama :: C Konu Anlatımları-
Buraya geçin: