D.ershane D Programlama Dili Dersleri

bayt: [byte], 8 bitlik tür
bit: [bit], 0 ve 1 değerlerini alabilen en temel bilgi birimi
bool: [bool], Bool ifadelerinin sonuçlarını taşıyan tür; doğruluk kavramı için true, yanlışlık kavramı için false
işaretli tür: [signed type], eksi ve artı değer alabilen tür
işaretsiz tür: [unsigned type], yalnızca artı değer alabilen tür
kayan noktalı sayı: [floating point], kesirli sayı
mikro işlemci: [CPU], bilgisayarın beyni
nan: [nan], "not a number", geçerli bir sayı gösterimi değil
nitelik: [property], bir türün veya nesnenin bir özelliği
sanal sayı: [imaginary number], salt sanal değerden oluşan karmaşık sayı
sınıf: [class], kendi üzerinde kullanılan işlevleri de tanımlayan veri yapısı
yapı: [struct], başka verileri bir araya getiren veri yapısı
... bütün sözlük

Bölümler
İngilizce Kaynaklar
Diğer



Temel Türler

Bilgisayarların beyni mikro işlemcidir. Bir programdaki işlemlerin çoğunu mikro işlemci yapar. Kendi yapmadığı işleri de bilgisayarın yan birimlerine devreder.

Bilgisayarlarda en küçük bilgi miktarı, 0 veya 1 değerini tutabilen ve bit adı verilen yapıdır. Bit, donanım düzeyinde bir kaç tane transistörden oluşur.

Yalnızca 0 ve 1 değerini tutabilen bir veri türünün kullanımı çok kısıtlı olduğu için, mikro işlemciler birden fazla bitin yan yana getirilmesinden oluşan daha kullanışlı veri türleri tanımlamışlardır: örneğin 8 bitten oluşan bayt veya 32, 64, vs. bitten oluşan daha büyük veri türleri... Her mikro işlemcinin mimari tasarımı gereği en etkin olarak kullandığı veri türü, o mikro işlemcinin o kadar bitlik olduğunu gösterir: "32 bitlik işlemci", "64 bitlik işlemci", gibi...

Mikro işlemcinin tanımladığı veri türleri de kendi başlarına yeterli değillerdir; çünkü örneğin öğrenci ismi gibi veya oyun kağıdı gibi özel bilgileri tutamazlar. Mikro işlemcinin sunduğu bu genel amaçlı veri türlerini daha kullanışlı türlere çevirmek programlama dillerinin görevidir. D'nin temel türleri bile tek başlarına kullanıldıklarında oyun kağıdı gibi bir kavramı destekleyemezler. O tür kavramlar ileride anlatılacak olan yapılarla ve sınıflarla ifade edilirler.

D'nin temel türleri çoğunlukla diğer dillerdeki temel türlere benzerler. Ek olarak, D'de belki de ancak bilimsel hesaplarda işe yarayan bazı ek türler de bulunur.

Tabloda kullanılan terimlerin açıklamalarını aşağıda bulacaksınız.

D'nin Temel Veri Türleri
Tür Açıklama İlk Değeri
bool Bool değeri false
byte işaretli 8 bit 0
ubyte işaretsiz 8 bit 0
short işaretli 16 bit 0
ushort işaretsiz 16 bit 0
int işaretli 32 bit 0
uint işaretsiz 32 bit 0
long işaretli 64 bit 0L
ulong işaretsiz 64 bit 0L
float 32 bit kayan noktalı sayı float.nan
double 64 bit kayan noktalı sayı double.nan
real ya donanımın (mikro işlemcinin) tanımladığı en büyük kayan noktalı sayı türüdür (örneğin, x86 mikro işlemcilerinde 80 bit), ya da double'dır; hangisi daha büyükse... real.nan
ifloat sanal float değer float.nan * 1.0i
idouble sanal double değer double.nan * 1.0i
ireal sanal real değer real.nan * 1.0i
cfloat iki float'tan oluşan karmaşık sayı float.nan + float.nan * 1.0i
cdouble iki double'dan oluşan karmaşık sayı double.nan + double.nan * 1.0i
creal iki real'den oluşan karmaşık sayı real.nan + real.nan * 1.0i
char UTF-8 kod birimi 0xFF
wchar UTF-16 kod birimi 0xFFFF
dchar UTF-32 kod birimi ve Unicode kod noktası 0x0000FFFF

Bunlara ek olarak hiçbir türden olmama kavramını ifade eden void anahtar sözcüğü de vardır. cent ve ucent anahtar sözcükleri, işaretli ve işaretsiz 128 bitlik veri türlerini temsil etmek üzere ilerisi için ayrılmışlardır.

Aksine bir neden bulunmadığı sürece genel bir kural olarak çocuk adedi ve sene gibi tam değerler için int kullanabilirsiniz. Kesirli değerleri olan kavramlar için de öncelikle double türü uygundur.

Tablodaki Terimlerin Açıklamaları

Bool değer: Mantıksal ifadelerde kullanılan ve "doğruluk" durumunda true, "doğru olmama" durumunda false değerini alan türdür

İşaretli tür: Hem eksi hem artı değerler alabilen türdür; Örneğin -128'den 127'ye kadar değer alabilen byte. İsimleri eksi işaretinden gelir.

İşaretsiz tür: Yalnızca artı değerler alabilen türdür; Örneğin 0'dan 255'e kadar değer alabilen ubyte. Bu türlerin başındaki u harfi, "işaretsiz" anlamına gelen "unsigned"ın baş harfidir.

Kayan noktalı sayı: Kabaca, 1.25 gibi kesirli değerleri tutabilen türdür; hesapların hassasiyeti türlerin bit sayısıyla doğru orantılıdır (yüksek bit sayısı yüksek hassasiyet sağlar); bunların dışındaki türler kesirli değerler alamazlar; örneğin int, yalnızca tamsayı değerler alabilir

Karmaşık sayı: Matematikte geçen karmaşık sayı değerlerini alabilen türdür

Sanal değer: Karmaşık sayıların salt sanal değerlerini taşıyabilen türdür; tabloda İlk Değer sütununda geçen i, matematikte -1'in kare kökü olan sayıdır

nan: "Not a number"ın kısaltmasıdır ve geçersiz kesirli sayı değeri anlamına gelir

Tür Nitelikleri

D'de türlerin nitelikleri vardır. Niteliklere türün isminden sonra bir nokta ve nitelik ismiyle erişilir. Örneğin int'in .sizeof niteliğine int.sizeof diye erişilir. Burada niteliklerden yalnızca dört tanesini göreceğiz; gerisini sonraki derslere bırakacağız:

int'in kaç bayttan oluştuğunu, en küçük değerini, ve en büyük değerini şöyle yazdırabiliriz:

import std.stdio;

void main()
{
    writeln("Tür                 : ", int.stringof);
    writeln("Bayt olarak uzunluğu: ", int.sizeof);
    writeln("En küçük değeri     : ", int.min);
    writeln("En büyük değeri     : ", int.max);
}
size_t

Programlarda size_t türü ile de karşılaşacaksınız. size_t bütünüyle farklı bir tür değildir; ortama bağlı olarak ulong veya başka bir işaretsiz temel türün takma ismidir. İsmi "size type"tan gelir ve "büyüklük türü" anlamındadır. Adet gibi saymayla ilgili olan kavramları temsil ederken kullanılır.

Bu türün sizin ortamınızda hangi temel türün takma ismi olduğunu yine .stringof niteliği ile öğrenebilirsiniz:

import std.stdio;

void main()
{
    writeln(size_t.stringof);
}

Yukarıdaki programı denediğim ortamda şu çıktıyı alıyorum:

ulong
Problem

... çözüm