Bu başlık altında bilgisayar mimarisinde kullanılan veri yapılarından küçük bir kısmını inceleyeceğiz. Yazılıma yeni başladığımız noktada bu konuları öğrenmek işimize oldukça yarayacak ve ilerleyen süreçte zihnimizde beliren sorular otomatikman cevap bulacaktır.
Veri Nedir?
Bilgisayar mimarisinde en temelde her şey aslında veridir. Bugün bir bilgisayar aldığımızda hepimiz işlemci modeline ve hızına, RAM değerine, HardDisk boyutuna ve ekran kartına bakmaktayız. Bu değerler çoğu zaman oyun oynamak için önemli olmakla birlikte bir de yazılımcılar için de ekstra anlam ifade etmektedir.
Bilgisayarımızda çalışan her program kaynak tüketir. Kaynak demek CPU demek, RAM demek, GPU demek vs.
Peki kaynak nasıl tüketilir? Yani nasıl bir yolla tüketilir? Örneğin; kompleks bir işlemi hesaplayan bir program yazdığımızı düşünelim, 10 milyon ile 11 milyon arasındaki asal sayıları bulan ve bu sayıları bir veri tabanına kaydettikten sonra yapılan işlemler ile alakalı logları bilgisayar içerisindeki özel bir alanda saklayan bir program! Muhtemelen bir çok işlem yapacaktır.
Dikkat edecek olursak sayı, veritabanı kayıt işlemi, log, saklamak gibi kavramlar kullandık. İşte tüm bu ifadeler özünde verilerden oluşmaktadır.
Data, yani veri, üzerinde işlemler yapabilmek için, ya da taşınması gerekliliğinden dolayı belirli bir forma çevrilmiş bilgidir. Form diye ifade ettiğimiz şey şu ki; bilgisayar mimarisinde veriler binary olarak (2’lik tabanda) saklanır, işlem görür.
Binary konusu için şu kaynak incelenebilir:
https://diyot.net/binary-sayi-sistemi/
Veri Nerede Saklanır?
Bilgisayar dünyasında veri saklamak için bir çok kaynak kullanılır. Biz bilgisayar bileşenlerinden iki tanesinden bahsedip bir tanesine odaklanacağız. Bunlar RAM ve HardDisk.
RAM | HardDisk |
Geçici yazma alanıdır. | Kalıcı yazma alanıdır. |
Okuma/yazma daha hızlıdır. | Okuma/yazma RAM’e nispeten yavaştır. |
CPU(İşlemci) direkt olarak RAM’deki veriye erişir. | Buradaki data önce RAM’e yazılır, daha sonra CPU RAM’den okur. |
Primitive Veri Tipleri
Bilgisayar mimarisinde kullanılan veri tiplerinden birisi de primitive veri tipleridir. Primitive’in kelime manası ilkeldir. İlkel olarak nitelendirilmesinin sebebi ise çok küçük miktarda yer kaplaması ve tek bir anlam ifade etmesidir.
C# dilinde kullanılan primitive tipler aşağıdaki gibi listelenebilir. Bu noktadan sonra bu tipleri biz Value Type olarak isimlendireceğiz.
Value Type | Açıklama |
Int (signed 32 bit) | 32 bit ile ifade edilen tam sayılardır. En baştaki bit +/- durumunu işaret eder. -2,147,483,648 ile 2,147,483,647 arası tam sayıları kapsar |
UInt (unsigned 32 bit) | 0 ile başlar, 32 bit ile ifade edilen pozitif tam sayılardır 0 ile 4,294,967,295 arası tam sayıları kapsar |
Boolean (1 bit) | true/false ifadesidir (0: false – 1: true) |
Long (signed 64 bit) | 64 bit ile ifade edilen tam sayılardır. En baştaki bit +/- durumunu işaret eder |
ULong (unsigned 64 bit) | 0 ile başlar, 64 bit ile ifade edilen pozitif tam sayılardır |
Short (signed 16 bit) | 16 bit ile ifade edilen tam sayılardır. En baştaki bit +/- durumunu işaret eder. |
UShort (unsigned) | 0 ile başlar, 16 bit ile ifade edilen pozitif tam sayılardır |
Char (16 bit Unicode character) | 16 bit ile ifade edilen alfabetik Unicode karakterlerdir. |
Decimal (128 bit signed) | 128 bit ile ifade edilir, virgüllü sayıları kapsar. Özellikle finans işlemlerinde kullanılır. Virgülden öncesini ifade etmek için 96 bit kullanılır, virgülden sonrası için 32 bit kullanılır |
Float (32 bit) | 32 bit ile ifade edilir. Virgülden sonra tek hane içerir. |
Double (64 bit) | 64 bit ile ifade edilir. Virgülden sonra 2 hane içerir. |
Bu value type’lar ile oluşturulan değişken ve değerleri RAM’de Stack denilen özel alana yazılırlar. RAM ve Stack ile alakalı bilgiler için diğer makaleyi okuyabilirsiniz.