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 tranzistö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.
| 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 |
| cent | işaretli 128 bit (ilerisi için düşünülmüştür; henüz geçerli bir tür değildir) | 0 |
| ucent | işaretsiz 128 bit (ilerisi için düşünülmüştür; henüz geçerli bir tür değildir) | 0 |
| 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 | işaretsiz 8 bit UTF-8 karakter değeri | 0xFF |
| wchar | işaretsiz 16 bit UTF-16 karakter değeri | 0xFFFF |
| dchar | işaretsiz 32 bit UTF-32 karakter değeri | 0x0000FFFF |
Bunlara ek olarak hiçbir türden olmama kavramını ifade eden void anahtar sözcüğü de vardır.
Aksine bir neden yoksa, genel bir kural olarak tamsayı değerler için int kullanılır.
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.23 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:
.stringoftürün okunaklı ismidir.sizeoftürün bayt olarak uzunluğudur; türün kaç bitten oluştuğunu hesaplamak için bu değeri bir bayttaki bit sayısı olan 8 ile çarpmak gerekir.min"en az" anlamına gelen "minimum"un kısaltmasıdır; türün alabileceği en küçük değerdir.max"en çok" anlamına gelen "maximum"un kısaltmasıdır; türün alabileceği en büyük değerdir
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); }
D.ershane
Forum
Wiki
Projeler
Tanıtım
İletişim
Hakları