25 Mayıs 2020

#6 C Dili: Operatörler

C programlama dilinde yazılan kodda değişkenler arası işlemlerin gerçekleştirilebilmesi için operatörlere ihtiyaç duyulmaktadır. Toplama, çıkarma, karşılaştırma gibi işlemler operatörler aracılığıyla yapılmaktadır. Bu yazımda C programlama dilindeki aritmetik, artırma ve azaltma, atama, karşılaştırma, mantıksal, bitwise operatörlerinden bahsedeceğim.

Aritmetik Operatörler

Toplama, çıkarma, bölme ve çarpma gibi matematiksel işlemlerin gerçekleştirilebilmesi için aritmetik operatörlere ihtiyaç duyulmaktadır. Bu operatörler ile kullanıcıdan alınmış veriler veya önceden tanımlanmış veriler arasında matematiksel işlem yapılabilmektedir.

Operatörİşlevi
+Toplama işlemi
Çıkarma işlemi
*Çarpma işlemi
/Bölme işlemi
%Mod bulma işlemi (bölüm sonucu kalan)

Yukarıdaki tabloda verilen matematiksel operatörlerin kullanıldığı örnek bir c programı aşağıda verilmiştir.


#include<stdio.h>
#include<locale.h>

int main()
{
	  setlocale(LC_ALL,"Turkish");
	
    int x = 7, y = 5, z;
    //3 adet tamsayı tanımlandı
    
    z = x+y;
    printf("x + y = %d \n",z);
    //x + y işleminin sonucu ekrana yazdırıldı
    
    z = x-y;
    printf("x - y = %d \n",z);
    //x - y işlemminin sonucu ekrana yazdırıldı
    
	z = x*y;
    printf("x * y = %d \n",z);
    //x * y işleminin sonucu ekrana yazdırıldı
    
	z = x/y;
    printf("x / y = %d \n",z);
    //x / y işleminin sonucu ekrana yazdırıldı 
    
	z = x%y;
    printf("x / y işleminden kalan = %d \n",z);
    //x / y işleminin kalanı ekrana yazdırıldı
    
    return 0;
}

Çıktı:

x + y = 12
x - y = 2
x * y = 35
x / y = 1
x / y işleminden kalan = 2

Yukarıdaki kodda toplama, çıkarma, çarpma, bölme ve mod bulma işlemleri matematiksel operatörler kullanılarak yapılmıştır. Sonrasında printf() fonskiyonu ile işemlerin sonuçları ekrana yazdırılmıştır.

Bölme işleminde eğer integer iki sayı birbirine bölünürse cevap bölümün tam kısmına eşit olmaktadır.

Artırma ve Azaltma Operatörleri

Değişkenlerin değerlerinin artırılmasında ve azaltılmasında kullanılan bu operatörler oldukça sık kullanılan bir operatör çeşididir. Genellikle döngülerin içerisinde döngülerin kontrol edilmesi için kullanılmaktadırlar.

OperatörİşleviÖrnek KullanımıDenk Karşılığı
++Artırmai++;
++i;
i = i + 1;
– –Azaltmai – – ;
– – i;
i = i – 1;

Artırma ve azaltma operatörleri ile i = i+ 1; gibi kodlar yazmak yerine daha kısa kodlar yazarak istenilen değişkenin değerinin artırılması ve azaltılması sağlanmaktadır.


#include<stdio.h>

int main()
{ 
    int x = 7, y = 5, z = 10, k = 15;
    //1 adet tamsayı tanımlandı
    
    printf("x++ = %d \n",x++);
    //x++ işleminin sonucu ekrana yazdırıldı
    
    printf("++y = %d \n",++y);
    //++x işleminin sonucu ekrana yazdırıldı
    
    printf("z-- = %d \n",z--);
    //x-- işleminin sonucu ekrana yazdırıldı
    
	  printf("--k = %d \n",--k);
    //--x işleminin sonucu ekrana yazdırıldı
    
    return 0;
}

Çıktı:

x++ = 7
++y = 6
z-- = 10
--k = 14

Yukarıdaki kodda farkettiyseniz eğer x++ yapısıyla ++x yapısı birbirinden farklı işlemektedir. Bunun sebebi x++ kod yapısında program x değerini işeleme alıp sonrasında x değerini 1 değer artırmaktadır. ++x kod yapısında ise program önce x değerini 1 değer artırarak x değerini programa almaktadır.

Atama Operatörleri

Bir değişkene bir veri tipine ait bir değer atanırken atama operatörleri kullanılmaktadır. C programlama dili başta olmak üzere çoğu programlama dilinde de olduğu gibi sağdaki değer soldaki değişkene atanmaktadır.

OperatörÖrnek KodAnlamı
=x = y;y değerini x değişkenine ata
+=x += y;x değişkenine y değerini ekle ve sonucu x değişkenine ata
-=x -= y;x değişkeninden y değerini çıkar ve sonucu x değişkenşie ata
*=x *= y;x değişkeni ile y değerini çarp ve sonucu x değişkenine ata
/=x /= y;x değişkenini y değerine böl ve sonucu x değişkenine ata
%=x % y;x değişkeninin y değerine bölümünden elde edilen kalanı x değişkenine ata

Yukarıdaki tabloda verilen atama operatörlerinin örnek kullanımı aşağıda kodda mevcuttur.


#include<stdio.h>

int main()
{
    int x = 7, y = 3;

    x = y;
    printf("x = %d\n", x);
    //x değişkenine y değeri atandı
    
    x += y; 
    printf("x = %d\n", x);
    //x değişkenine y değeri eklendi
	
	x -= y;
    printf("x = %d\n", x);
    //x değerinden y değeri çıkartıldı
    
	x *= y;
    printf("x = %d\n", x);
    //x değişkeni ile y değeri çarpıldı
	
	x /= y;
    printf("x = %d\n", x);
    //x değişkeni y değerine bölündü
    
	x %= y;
    printf("x = %d\n", x);
    //x değerinin y değerinde modu x değerine atandı
    
    return 0;
}

Çıktı:

x = 3
x = 6
x = 3
x = 9
x = 3
x = 0

Yukarıdaki kodda dikkat edilmesi gereken en önemli husus her atama operatöründen sonra x değişkeninin değerinin değişmesi ve bir sonraki işlemlerde yeni değerin işleme alınmasıdır.

Karşılaştırma Operatörleri

Karşılaştırma operatörleri iki değişkenin birbiri ile olan değer karşılaştırılmalarında kullanılmaktadır. Bu operatörler ile akış diyagramlarındaki koşul ifadeleri oluşturulabilmektedir. Aşağıdaki tabloda C programlama dilinde kullanılan karşılaştırma operatörleri mevcuttur.

OperatörAnlamıÖrnek KodMantıksal Çıktı
==eşit eşittir1 == 30
>büyüktür5 > 41
<küçüktür8 < 171
!=eşit değildir5 != 131
>=büyük eşittir3 >= 70
<=küçük eşittir4 <= 51

Karşılaştırma operatörlerinin C programı tarafından algılanan çıktısı 1 ve 0 dır. Program bu çıktıya göre davranır.


#include <stdio.h>

int main()
{
    int x = 5, y = 5, z = 10;

    printf("%d == %d : %d \n", x, y, x == y);
    printf("%d == %d : %d \n", x, z, x == z);
    printf("%d > %d : %d \n", x, y, x > y);
    printf("%d > %d : %d \n", x, z, x > z);
    printf("%d < %d : %d \n", x, y, x < y);
    printf("%d < %d : %d \n", x, z, x < z);
    printf("%d != %d : %d \n", x, y, x != y);
    printf("%d != %d : %d \n", x, z, x != z);
    printf("%d >= %d : %d \n", x, y, x >= y);
    printf("%d >= %d : %d \n", x, z, x >= z);
    printf("%d <= %d : %d \n", x, y, x <= y);
    printf("%d <= %d : %d \n", x, z, x <= z);

    return 0;
}

Çıktı:

5 == 5 : 1
5 == 10 : 0
5 > 5 : 0
5 > 10 : 0
5 < 5 : 0 
5 < 10 : 1 
5 != 5 : 0 
5 != 10 : 1 
5 >= 5 : 1
5 >= 10 : 0
5 <= 5 : 1
5 <= 10 : 1

Karşılaştırmalar sonucu elde edilen 1 ve 0 çıktıları program içinde doğru ve yanlış olarak işeleme alınacaktır. Bu çıktılar C++ dilinde “True” ve “False” olarak mevcuttur.

Mantıksal Operatörler

Matematikteki mantıktan da bilineceği üzere ve, veya, değil olmak üzere üç temel mantıksal operatör mevcuttur. Bu operatörlerin matematikteki kullanımı ile C programlama dilindeki kullanımı da aynıdır.

OperatörİşleviÖrnek Kod
&&ve(a = 5) && (b =7)
||veya(x >= 70) || (y =100)
!değil!(z= 40)

Aşağıdaki örnekte yukarıdaki mantıksal operatörlerin kullanımını açıklayan basit bir örnek kod verilmiştir.


#include<stdio.h>

int main()
{
    int x = 5, y = 5, z = 10, sonuc;

    //ve ifadesinin kullanımı
    sonuc = (x == y) && (z > y);
    printf("(x == y) && (z > y) ---> %d \n", sonuc);
    
    //veya ifadesinin kullanımı
	  sonuc = (x == y) || (z < y);
    printf("(x == y) || (z < y) ---> %d \n", sonuc);
   
    //değil ifadesinin kullanımı
	  sonuc = !(x != y);
    printf("!(x == y) ---> %d \n", sonuc);

    return 0;
}

Çıktı:

(x == y) && (z > y) ---> 1
(x == y) || (z < y) ---> 1
!(x == y) ---> 1

Yukarıdaki kodda da görüldüğü üzere matematikte var olan mantıksal ifadeler C programlama dilinde de matematikteki halleriyle kullanılmaktadır.

Bitwise Operatörler

İlerleyen yazılarımda bitwise operatörlerine daha detaylı değineceğim lakin bu yazımda bitwise operatörlerinin ne olduğundan ve kullanımından bahsetmek istedim.

Bitwise operatörleri programın bit düzeyinde işlem yapmasına olanak sağlamaktadır. Bit düzeyinde işlem programın hem daha ızlı çalışmasına hem de daha az güç tüketmesine olanak sağlamaktadır.

OperatörAnlamı
&Bitwise AND (bitwise ve)
|Bitwise OR (bitwise veya)
^Bitwise XOR (bitwise xor)
Bitwise tamamlayıcı
<<Sola bit kaydırma
>>Sağa bit kaydırma

C programlama dilinde bit işlemlerinde kullanılan bitwise operatörleri yukarıdaki tabloda verilmiştir. Bitwise operatörlerine ilerleyen yazılarımda daha detaylı bahsedeceğim.

Yorum bölümünden tüm sorularınızı bana iletebilirsiniz.

Çalışmalarınızda başarılar dilerim.

Hamit Can Dinç.

Share

Hamit Can Dinç

Yıldız Teknik Üniversitesinde Elektrik Mühendisliği öğrencisi. Araştırma ve geliştirme odaklı projelerde yer almayı sever.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir