CCS C Programında Kullanılan Sayı Türleri ve Operatörler

  • Decimal Sayılar: 0 dan 9’a kadar olan rakamlarla oluşturulan 10’luk tabandaki sayılardır. Kısacası günlük hayatta kullandığımız sayılardır. Değişkenlere veya sabitlere aşağıdaki gibi atanırlar;

int sayı=50                         int buton=1                       int zaman=1000

  • Binary Sayılar:0 ve 1 lerden oluşan 2’lik tabandaki sayılardır. Mikroişlemci programlama uygulamalarında çok kullanılırlar. Örneğin; 00001101 gibi 2’lik tabanda yazılan sayının her basamağı bir bit ifade eder. PIC 16F628A mikroişlemcisinin B portunun 8 adet pini bulunmaktadır. Bu pinlerin hepsinin durumunu 8 bitlik bir sayı ile değiştirebiliriz. Örneğin sayımız; 10011011 olsun. Bu durumda;
8.Bit 7.Bit 6.Bit 5.Bit 4.Bit 3.Bit 2.Bit 1.Bit
1 0 0 1 1 0 1 1
Pin_B7 Pin_B6 Pin_B5 Pin_B4 Pin_B3 Pin_B2 Pin_B1 Pin_B0

Şeklinde giriş veya çıkış olarak atanır. Program çalıştırıldığında;

“1” olanlar girişler: Pin_B0,  Pin_B1,  Pin_B3,  Pin_B4,  Pin_B7 olur.

“0” olanlar çıkışlar: Pin_B2,  Pin_B5,  Pin_B6 olur.

  • Hexadecimal (hex) Sayılar: 16’lı tabanda yazılan sayılardır. Bu tabanda sayılar yazılırken 0 dan 9’a kadar normal rakamlar kullanılır. 9 dan sonra ise 16’ya kadar A, B, C, D, E, F harfleri kullanılır. Yani 10=A, 11=B, 12=C, 13=D, 14=E, 15=F olur. Örneğin; 16 lık tabandaki FF hex sayısı 10 luk tabanda 255 dir.

15*161 + 15*160 = 255

NOT: CCS C de hex sayılar yazılırken başına “0x” ifadesi getirilir. Örneğin 0xFF, 0x10, 0xAB gibi.

OPERATÖRLER

            Karşılaştırma operatörleri:

Eşitlik: “ == “ Eşit mi? Manasına gelir

if(x==5)        // x degeri 5’e eşit mi? Eşit ise parantez içine geç

{

x = x+1;  // x’e 1 ekle

}

Büyük: “ > ” operatörü büyüklük kontrolü için kullanılır.

if(x > 5)   // x’5 ten büyük mü?

{

//Komutlar

}

Büyük Eşit: “  >=  ”Operatörüeşit veya daha büyük olma kontrolü için kullanılır.

if(x >= 5)   // x 5’e eşit veya daha büyük mü?

{

//Komutlar

}

Küçük: “ < “ operatörü küçüklük kontrolü için kullanılır.

if(x < 5)   // x 5’ten küçük mü?

{

//Komutlar

}

Küçük Eşit: “ <= “operatörü eşit veya daha küçük olma kontrolü için kullanılır.

if(x <= 5)   // x 5’e eşit veya daha küçük mü?

{

//Komutlar

}

            Aritmetik Operatörler:

            + Toplama

            –  Çıkartma

            * Çarpma

            / Bölme

            % Kalanlı bölme

inta,b;

intsonuc

sonuc = a * b;

sonuc = a – b;

sonuc = (a*b) + (a-b);

sonuc = (a/b) + (b/a);

inta;

a = 10;        // a değişkenine 10 değerini ata

a = 10 % 2; // a = 10 sayısının 2 ye bölümünden kalan, a = 0 olur 10 = 5*2

a = 10 % 3; // a = 10 sayısının 3’e bölümünden kalan, a = 1 olur. 10 = (3 *3)+1

Arttırma Ve Azaltma Operatörleri:

++ operatörü değişken değerini bir artırma , – – operatörü ise bir azaltma işlemleri için kullanılır.

inta;

a = 10;

++a;  // a’yı 1 artır. a = 11 olur

– -a;  // a’yı bir azalt; a =10 olur

Genelde a++ şeklinde veya a—şeklinde kullanılır.

Lojik Operatörler

Lojik operatörler istenilen durumların oluşup oluşmadığının tespiti için kullanılırlar.

&& AND, Yani her iki durum da doğrumu manasında
||       OR, Yani iki durumdan herhangi biri doğru mu manasında
!              NOR, Belirtilen durumdan farklı ise

                intx,y,z;

x = 5;

y = 10;

z = 15;

if((x > y) && (x > z))  // x değeri y den ve z den büyük mü?

if((x != 0) || (y > z))  // x değeri sıfırdan farklı veya y değeri z değerinden büyük mü. Burada x sıfırdan büyük ama  y z’den büyük değil. Koşul sağlanmış olur.

if(!(x==0))  // x sıfıra eşit değilse

Bit Seviyesinde İşlem Operatörleri

>>         Sağa kaydırma
<<         sola kaydırma
&           AND (Ve)
|             OR (Veya)
^            EXOR (Özel Veya)
~            Inverse (Ters Çevirme)

inta;

a = 12;

12 sayısının bit olarak gösterilişi. 00001100 şeklindedir. Hex olarak ise 0x0C

a>>2 ; // a’yı 2 bit sağa kaydır 00000011. anın yeni değeri = 3 olur.  0×03 Hex

a = 12;

a<<1; // a’yı bir bit sola kaydır. 00011000 = 24, 0x18 hex

a = 12; // 00001100

b = 48; // 00110000

a & b = 00000000 ‘olur. Bitler alt alta birbirleriyle And’lenir sonucun bir olması için her iki bit’in de 1 olması gerekir

a = 12; // 12 = 00001100

b = 56; // 56 = 00111000

a & b = 00001000 = 8

a | b = 00111100 = 60

a ^ b = 00110100 = 52  // 1^1 = 0, 1^0=1,  0^1 = 1,  0^0 = 0

~a = 11110011 olur. (1 ler 0, 0’lar 1 yapılır)