Veri Tipi Nedir?
Programlama yaparken, programımızda
kullanacağımız değişkenleri tanımlarız. Bu tanımlamalar için programımız belli
bir yer ayırır. Yani Arduino için konuşacak olursak 32KB’lık Arduino UNO
hafızasının belli bir bölümü bu değişkenlere ayrılır. Bu tanımlamaları
yaparken, tanımlayacağımız sayının veya karakterin hangi sayı aralığında yer
aldığına göre bir veri tipi seçmeliyiz.
Veri Tipi Neden Önemli?
Atadığımız her değişkenin hafızada belli
bir yer tuttuğunu söylemiştik. Belli sayı aralıkları belli yerler tutar. Daha
büyük sayıları kullanmamıza imkân veren veri tipleri hafızada daha çok yer
kaplar. Dolayısıyla gerekmediği takdirde hafızada fazladan yer kaplamamızın
anlamı yok. Arduino için konuşacak olursak, her ne kadar alternatifleri olsa
da, UNO’nun 32KB’lık hafızası için her bir değişkenin harcadığı alan bizim için
“büyük projelerde” çok önemli.
Şimdi gelelim veri tiplerine,
1) Boolean
Tek bitlik bir değişkendir. İçerisinde
sadece 0 veya 1 verilerini barındırabilir. Yani TRUE veya FALSE. Eğer bir yerde
yalnızca iki ihtimal varsa bu veri tipini kullanabiliriz. Kısaca bool şeklinde
de tanımlama yapılabilir. Kişinin isteğine bağlıdır.
Bool durum;
bool led1=TRUE;
bool led1=TRUE;
2) byte
8-bit negatif işaretsiz sayıyı
içerisinde tutar. Bu da 0-225 arasına denk gelir.
Not:
1 byte 8 bitlik veri tutar. Makine dilinde veriler 0 ve 1’ler ile saklanır.
Mesela, 01101001 verisi aslında bir sayının makine dilinde karşılığıdır.
Buradaki 0 ve 1’lerin her biri bir bittir.
Byte kullanımına örnek verecek olursak;
byte x=21;
3) int
Uzun ismi Integer’dır
ve tamsayı anlamına gelir.
16-bit yani 2 byte’lık alan kaplar. Tam
sayıları saklamak için en sık kullanılan veri tipidir.
int deger=96;
4) char
Bir byte yani 8-bit genişliğindedir. İçinde
karakter verisi bulundurur. Karakter değerleri numara şeklinde saklanmaktadır.
Bunun anlamı da karakter değerleri üzerinde aritmetik işlem yapabileceğinizdir.
Herhangi bir karakterin sayı değerini öğrenmek isterseniz ASCII tablosuna
bakmalısınız.char değişkenine değer harf veya sayı olarak verilebilir.
5) unsigned int
Integer veri tipi ile aynı özelliklere
sahiptir. Yalnız negatif değerlere yer vermediği için, negatif değer için
ayırdığı hafızayı pozitif değere ekleyerek 0 ile 65,535 arası değer
alabilir. 32-bit sistemlerde ise 0 ile 4,294,967,295 arasında
değer alabilir.
unsigned int sayi=146798;
6) unsigned char
Negatif işareti olmayan char değişkeni
tanımlar. Karakter verileri negatif değerler almazlar. Dolayısıyla char
değişkeni sadece 127’ye kadar değer alabilir. unsigned char ile farklı karakter
verilerine erişim olsa da Arduino dilinde byte verisiyle aynı anlama gelir ve 0
ile 255 arasında değer alır.
unsigned char karakter3 = 247;
7) word
Uno ve Atmega mikrodenetleyici
bulunduran kartlarda unsigned int ile aynı özelliğe sahiptir. Fakat Due ve Zero
kartlarda 32 bitlik negatif işaretsiz veri depolayabilir.
word deger=1200;
8) long
Tanımlayacağımız sayı çok uzunda bu tip
bir değişken işimizi görecektir. 32 bitlik yani 4 byte’lık yer kaplayan bu veri
tipi -2,147,483,648 ile 2,147,483,647 arasında değer alabilir.
long uzunsayi;
9) unsigned long
long veri tipinin negatif işareti
kaldırılmış versiyonu da diyebiliriz. Yine long gibi 32 bitlik yer kaplar fakat
negatif işaret için ayrılmış kısmı pozitifte de kullanabileceğimiz için 0
ve 4,294,967,295 arası bir tamsayı değeri atayabiliriz.
unsigned long cokuzunsayi=4325283;
10) short
Bütün sistemlerde kapladığı alan 16
bittir. Bu da -32,768 ile 32,767 arasına tekabül etmektedir.
short deger=7000;
11) float
Bu veri tipi ondalık sayıları da içinde
barındırır. Eğer bir işlemde virgülden sonra da sayı varsa değişkenimizi bu
veri tipiyle atamak zorundayız. float değişkeni -3.4028235E+38 ile
3.4028235E+38 arasında ondalık değer alabilir. Bu değer hafızada 32 bitlik yer
tutar. float değişkeninde en fazla 6 veya 7 hane bulunabilir. Daha uzunu için
double kullanmak lazımdır.
float sensor=3.2354;
12) double
Arduino’nun ATMEGA tabanlı kartlarında
float değişkeninden farksızdır. Due kartında 64 bitlik yer tutar ve
saklayabildiği ondalık sayı çok daha yüksek olabilir.
double ondalikdeger=2.4323;
Güzel bir çalışma olmuş teşekkür ederim admin
YanıtlaSil