- 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)