C++ programlama dili, veri tipleri arasında tam sayılar, karakterler, ondalıklı sayılar, bool, pointer ve referans veri tipleri sunar Veri tipleri arasında dönüşümler yaparken dikkat edilmesi gereken özel kodlama yöntemleri kullanılır Tam sayı veri tipleri arasında 'short int', 'int', 'long int' ve 'long long int' bulunur Karakter veri tipi, ASCII kodlaması kullanılarak sayısal veri tiplerine dönüştürülebilir Tip dönüştürme işlemleri yaparken, sayının ASCII kodlamasını dikkate almak ve uygun veri tiplerini kullanmak önemlidir 'static_cast' fonksiyonu, veri tipleri arasında dönüşümler yapmak için kullanışlı bir araçtır

C++ programlama dili, işlem yapmak için kullanabileceğimiz farklı veri türleri sunmaktadır. Bu veri türleri arasında tam sayılar, karakterler, ondalıklı sayılar, bool, pointer ve referans veri tipleri yer almaktadır. Bu veri tipleri arasında dönüşümler yapmak C++ programlama dilinde oldukça önemlidir.
Veri tipleri arasındaki dönüşümleri yapabilmek için, C++ öncelikle her veri türüne ait özel bir kodlama yöntemi kullanmaktadır. Bu sayede her veri türü birbirinden farklı olarak hafızada depolanmaktadır. Ancak herhangi bir veri türünü, diğer bir veri türüne dönüştürme işlemi yapmak istediğimizde, bu kodlama yöntemlerini de dikkate almamız gerekmektedir.
Tam Sayı Veri Tipleri
C++ programlama dilinde kullanılan veri türleri arasında tam sayı veri tipleri de bulunmaktadır. Bu veri türleri, değişkenleri tam sayılar olarak tutmak için kullanılır. C++'ta kullanılan tam sayı veri tipleri şunlardır:
Veri Türü | Boyut (byte) | Minimum Değer | Maksimum Değer |
---|---|---|---|
short int | 2 | -32,768 | 32,767 |
int | 4 | -2,147,483,648 | 2,147,483,647 |
long int | 4 | -2,147,483,648 | 2,147,483,647 |
long long int | 8 | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 |
Tam sayı veri tipleri arasında dönüşüm yapmak için bazı kullanışlı fonksiyonlar da bulunmaktadır. Bunlardan biri static_cast
fonksiyonudur. Bu fonksiyon, değişkenleri istenilen veri türüne dönüştürmek için kullanılır. Örneğin, bir short int
değişkeni int
türüne dönüştürülmek istenirse aşağıdaki şekilde kullanılabilir:
short int s = 10;int i = static_cast(s);
Bu işlem sonucunda s
değişkeni i
değişkenine dönüştürülmüş olur. Ayrıca, tam sayı veri tipleri arasındaki dönüşümlerde otomatik dönüşüm de kullanılabilir. Örneğin, bir int
değişkeni long int
türüne dönüştürülmek istenirse şu şekilde kullanılabilir:
int i = 2147483647;long int l = i;
Bu işlem sonucunda i
değişkeni long int
türüne otomatik olarak dönüştürülmüş olur.
Karakter Veri Tipi
C++ programlama dilinde kullanılan veri türleri arasında karakter veri tipi de yer almaktadır. Bu veri tipi, tam sayı veri tiplerinden farklı olarak karakter değerlerini tutar. Karakter veri tipi, 'char' anahtar kelimesiyle tanımlanır.
Karakterler, ASCII kodlaması kullanılarak tam sayılarla ifade edilir. Bu işlem için, 'static_cast' anahtar kelimesi kullanılır. Örnek olarak, 'char' veri tipindeki bir karakterin tam sayıya dönüştürülmesi aşağıdaki gibi yapılabilir:
Char Değeri | Tam Sayı Değeri |
---|---|
'A' | 65 |
'a' | 97 |
'1' | 49 |
Char veri tipindeki bir karakterin tam sayıya dönüştürülmesi işlemi tam tersi olarak da yapılabilir. Yani, bir tam sayının karaktere dönüştürülmesi işlemi de 'static_cast' anahtar kelimesi kullanarak gerçekleştirilebilir. Ancak, bu işlem yapılırken dikkatli olunmalıdır. Çünkü tam sayı değeri, char veri tipinde tutulması mümkün olan karakter değerlerinin aralığında olmalıdır. Aksi takdirde, uygulama hata verebilir veya beklenmeyen sonuçlar elde edilebilir.
ASCII Kodlaması
C++ programlama dilinde karakter veri tipi, ASCII kodlaması kullanılarak sayısal veri tiplerine dönüştürülebilir. ASCII (American Standard Code for Information Interchange) kodlaması, 7 bitlik bir karakter kodlama sistemidir. Bu kodlama, karakterleri sayılara dönüştürür ve her karakter için farklı bir sayısal değer atar.
ASCII kodlamasında 0-9 arasındaki rakamlar 48-57 arasındaki sayısal değerlere karşılık gelir. Büyük harfler 65-90, küçük harfler 97-122 arasındaki sayısal değerlerle ifade edilir. Ayrıca, özel karakterler de farklı sayısal değerlere karşılık gelir. Örneğin, boşluk karakteri 32, yeni satır karakteri 10 ve noktalama işaretleri farklı sayısal değerlere sahiptir.
Karakter | ASCII Kodu |
---|---|
A | 65 |
B | 66 |
C | 67 |
D | 68 |
E | 69 |
... | ... |
ASCII kodlaması kullanarak karakter veri tipini sayısal veri tiplerine dönüştürmek için, karakterlerin ASCII kodlarını kullanmak yeterlidir. Örneğin, "A" karakterinin ASCII kodu 65'tir, "B" karakterinin kodu 66'dır. Bu şekilde, her karakter için bir sayısal değer elde edilir ve bu değer tam sayı veri tipinde depolanabilir.
Tip Dönüştürme İşlemleri
C++ programlama dilinde, tam sayı veri türleri karakter veri türlerine dönüştürülebilir. Ancak, tam sayıları karakterlere dönüştürürken bazı hususlara dikkat etmek gereklidir.
Öncelikle, tam sayıyı karaktere dönüştürürken sayının ASCII kodlamasının dikkate alınması gereklidir. Çünkü karakterleri sayılara dönüştürmek için ASCII tablosu kullanılır.
Karakter | ASCII Kodu |
'A' | 65 |
'B' | 66 |
'C' | 67 |
Bu tabloda, 'A' karakteri 65 sayısına, 'B' karakteri 66 sayısına ve 'C' karakteri 67 sayısına dönüştürülmüştür. Tam sayıyı karaktere dönüştürürken, sayının ASCII koduna dikkat ederek, o kodun karşılık geldiği karakteri kullanabilirsiniz. Örneğin, 65 sayısı 'A' karakterine, 66 sayısı 'B' karakterine dönüştürülebilir.
Bununla birlikte, tam sayının karaktere dönüştürülmesinde dikkat edilmesi gereken bir diğer husus ise, sayının 'char' veri tipine sığdırılmasıdır. Eğer sayı 'char' veri tipinin sınırlarını aşıyorsa, hatalar meydana gelebilir. Bu nedenle, tam sayıları karakterlere dönüştürürken sınırlara dikkat edilmeli ve veri kaybı yaşanmaması için gerekli önlemler alınmalıdır.
Ondalıklı Sayı Veri Tipleri
C++ programlama dilinin ondalıklı sayı veri tipleri vardır. Ondalıklı sayı veri tipleri, tam sayılardan farklı olarak virgül veya nokta ile ayrılan sayıları ifade eder. C++'ta kullanılan ondalıklı sayı veri tipleri şunlardır:
- float
- double
- long double
float veri tipi 4 byte, double veri tipi 8 byte, long double veri tipi ise genellikle 10-16 byte boyutunda olur. Bu veri tipleri arasındaki fark, daha fazla bellek kullanımıyla daha yüksek doğruluk düzeyine sahip olmalarıdır.
Ondalıklı sayılar, tam sayılara dönüştürülebilir. Ancak tam sayılarla işlem yaparken, ondalıklı kısımlar yitirilir. Dolayısıyla, tam sayılardan ondalıklı sayılara dönüşüm yaparken dikkatli olunmalıdır.
Tam Sayı Veri Tipi | Ondalıklı Sayı Veri Tipi |
---|---|
int | float/double/long double |
Yukarıdaki tabloda, tam sayı veri tipleri ve onların karşılık gelen ondalıklı sayı veri tipleri yer almaktadır. Tam sayı veri tiplerinden float, double veya long double veri tiplerine tip dönüşümü yapmak için, "static_cast" anahtar kelimesi kullanılabilir. Bu anahtar kelimesi, veri tipi dönüşümü yaparken güvenli bir şekilde işlem yapmayı sağlar.
Bununla birlikte, ondalıklı sayıları tam sayılara dönüştürürken ondalıklı kısım yitirileceğinden, sonuçlar yanıltıcı olabilir. Eğer ondalıklı kısım önemliyse, bu dönüşüm yapılmamalıdır. Aksi takdirde, ondalıklı kısmın kesilmesi nedeniyle yanlış sonuçlanan işlemler olabilir.
Virgül Hanesi
Virgül hanesi, ondalıklı sayıların nasıl depolandığı konusunda oldukça önemli bir işarettir. Ondalıklı sayılar, bitler üzerinde depolanır. Ancak bu bitlerin neresinde virgül hanesi olduğu çok önemlidir. Çünkü virgül hanesi, sayının anlamını tamamen değiştirebilir.
Örneğin, 3.14 ondalıklı sayısını ele alalım. Bu sayının virgül hanesi, sayının anlamını belirleyen kritik bir işarettir. Eğer virgül hanesi yoksa, bu sayı tam sayı olarak kabul edilir ve 3 olarak depolanır. Ancak virgül hanesi vardır ve bu nedenle sayı ondalıklı bir sayı olarak kabul edilir ve 3.14 olarak depolanır.
Bu nedenle, ondalıklı sayıların doğru bir şekilde depolanması ve işlenmesi için virgül hanesinin doğru konumda olduğundan emin olmak çok önemlidir. Programlama dillerinde, virgül hanesinin kaç basamak sonra geleceği de belirlenebilir. Bu sayede, ondalıklı sayıların hassasiyeti kontrol edilebilir.
Tip Dönüştürme İşlemleri
C++ programlama dilinde ondalıklı sayı veri tipleri, tam sayı veri tiplerinden farklıdır ve bu nedenle aralarında dönüşüm işlemleri yapmak gerekebilir. Ondalıklı sayıları tam sayılara dönüştürmek için C++ dilinde farklı yöntemler kullanılabilir. Ancak, bu işlemler yapılırken dikkat edilmesi gereken bazı önemli noktalar vardır.
Float ve double veri tipleri, ondalıklı sayıların depolanmasında kullanılan veri tipleridir. Bu veri tipleri, tam sayı veri tiplerine göre daha fazla bellek alanı gerektirirler. Ondalıklı sayıları tam sayılara dönüştürmek için static_cast yöntemi kullanılabilir. Ancak, bu yöntem doğru sonuç vermez. Bunun nedeni, float ve double veri tiplerinin hassas olmayan yaklaşık değerlerle çalışıyor olmalarıdır. Bu nedenle, ondalıklı sayıları tam sayılara dönüştürürken, sayının kesin değeri kaybedilebilir. Bu nedenle, ondalıklı sayıların tam sayılara dönüştürülmesi için toplama, çıkarma, çarpma ve bölme işlemlerini kullanmak daha doğru sonuçlar verir.
Örneğin, float tipinde bir sayıyı tam sayıya dönüştürmek için, sayıya 0.5 eklenmelidir. Bu sayede, sayı yukarı veya aşağı yuvarlanarak tam sayıya dönüştürülebilir. Double tipinde bir sayıyı tam sayıya dönüştürmek için ise, sayıya 0.5 veya 0.00001 gibi küçük bir değer eklemek gerekebilir. Bu sayede, sayı yine yukarı veya aşağı yuvarlanarak tam sayıya dönüştürülebilir.
Ondalıklı sayıları tam sayılara dönüştürürken, çevrim işlemleri sırasında veri kaybına dikkat edilmelidir. Bu nedenle, kod yazarken bu işlemlere özel dikkat gösterilmeli ve doğru yöntemler tercih edilmelidir. Eğer tam sayı veri tipleri kullanılacaksa, ondalıklı sayıların tam sayılara dönüştürülmesinden önce hangi hassasiyete sahip olacakları belirlenmeli, çevrim işlemleri bu hassasiyet göz önünde bulundurularak yapılmalıdır.
Bool Veri Tipi
C++ programlama dilinde kullanılan veri tipleri arasında yer alan bool veri tipi, doğru ya da yanlış değerlerini tutmak için kullanılır. Bu veri tipi, genellikle karar kontrol yapısında (if, else gibi) kullanılır.
Bool veri tipi, sadece iki değer alabilir: true (doğru) ya da false (yanlış). Bu değerler, 1 (true) ya da 0 (false) sayıları ile eşdeğerdir.
Bool veri tipi, tip dönüştürme işlemleri sırasında dikkat edilmesi gereken bir veri tipidir. Bu tipin bir tam sayıya ya da karaktere dönüştürülmesi işlemi yapılabilir ancak bu durumda, 1 (true) ya da 0 (false) sayılarına dönüştürülür.
Aşağıdaki örnek, bool veri tipinin bazı kullanımlarını gösterir:
bool değeri | Karşılığı |
---|---|
true | 1 |
false | 0 |
Bool veri tipi, if, else, while ve do-while gibi karar kontrol yapısında kullanıldığında oldukça faydalıdır. İşlem sonucunu doğru ya da yanlış olarak belirleyebilir ve programın akışını bu şekilde kontrol edebilir.
Tip Dönüştürme İşlemleri
Tip Dönüştürme İşlemleri:
C++ programlama dilinde kullanılan Bool veri tipi, sadece true ve false değerlerini alabilen bir veri tipidir. Tam sayı ve karakter veri tiplerine dönüştürülürken dikkat edilmesi gereken birkaç husus bulunmaktadır. Bool değeri, tam sayıya dönüştürüldüğünde 1 veya 0 değerlerini alır. True değeri 1, false değeri ise 0 olarak ifade edilir. Karakter veri tipine dönüştürüldüğünde ise true değeri ‘T’ karakteri, false değeri ise ‘F’ karakteri olarak ifade edilir.
Bu dönüştürme işlemleri sırasında dikkat edilmesi gereken en önemli nokta, Bool veri tipi haricindeki yapılan işlemlerde sonuç farklılık gösterir. Örnek olarak, bir bool değerinin karakter veri tipine dönüştürülmesi sonucu ‘T’ veya ‘F’ karakterleri döndürülecektir ancak aynı işlem tam sayı veri tipinde yapılırsa karakterin ASCII değeri döndürülür.
Bu nedenle, doğru sonucu elde etmek için dönüştürme işlemleri yaparken veri tipleri arasındaki farklılıklar mutlaka göz önünde bulundurulmalı ve dikkatli olunmalıdır.
Pointer Veri Tipi
C++ programlama dilinde pointer veri tipi kullanımı oldukça yaygındır. Pointer, diğer veri türlerinden farklı olarak, bir bellek adresini tutar ve bu adresi işaret eder. Bu sayede, bir değişkenin değerini doğrudan değiştirmeden, adresi üzerinden değiştirme imkanı sağlar.
Pointer veri tipinin kullanımında dikkat edilmesi gereken bazı unsurlar vardır. Pointer tanımlama işlemi yapılırken, ilk önce veri tipi belirtilir ve sonra '*' işareti ile belirtilen bir isim atanır. Pointer tanımlandıktan sonra, bu pointer değişkeni bir bellek adresi ile bağlantılandırılmalıdır. Bunun için değişkenin bellek adresi, '&' operatörü ile alınarak, pointer değişkenine atama yapılabilir.
Pointer veri tipi ile çalışırken, bellek yönetimi de özenle yapılmalıdır. Pointer, bir bellek adresini işaret ettiği için, bu bellek alanının kullanımı da büyük önem taşır. Bellek yönetiminde yapılacak hatalar, programın hata vermesine yol açabilir.
İşlem | Açıklama |
---|---|
& | Bir değişkenin bellek adresini verir. |
* | Bir pointer değişkeni tanımlarken kullanılır. |
Pointer veri tipi, C++ programlama dilinde oldukça önemli bir yere sahiptir. Verilerin bellekte hızlı ve etkili bir şekilde işlenebilmesi için, pointer kullanımı kaçınılmazdır. Ancak, iyi bir bellek yönetimi yapılması ve pointer kullanımında uygun tekniklerin uygulanması gerekmektedir.
Tip Dönüştürme İşlemleri
Pointer veri tipi C++ programlama dilinde oldukça önemli bir veri tipidir. Bu veri tipi, bellekteki bir adresi ya da o adreste depolanan bir değeri tutar. Pointer veri tipinin tam sayıya dönüştürülmesi için kullanılan tek bir işlem bulunmaktadır. Örneğin, int*
türündeki bir pointer veri tipini int
veri tipine dönüştürmek için (int)
operatörü kullanılabilir.
Ancak, pointer veri tipinin tam sayıya dönüştürülmesi işlemi, dikkatli bir şekilde yapılması gereken bir işlemdir. Bu işlemde, pointer verinin asıl amacının kaybedilme riski vardır. Yani, bir pointer veri tipinin tam sayıya dönüştürülmesi sonucunda, pointerın adres tutma yeteneği kaybolur ve sadece içerdiği sayı değeri kalmaktadır.
Bu nedenle, pointer veri tipinin tam sayıya dönüştürülmesi işlemi sırasında, pointerın asıl amacının kaybolmaması için dikkat edilmesi gereken bazı hususlar bulunmaktadır. Bunlar şunlardır:
- Pointerı, sadece tam sayıya dönüştürmek istediğimiz özel bir durum için kullanmalıyız.
- Pointerın tuttuğu adresi, hiçbir zaman kaybetmemeliyiz.
- Pointerı, tam sayıya dönüştürdükten sonra, yeniden pointer veri tipine dönüştürmek istediğimizde kullanabileceğimiz bir yolu muhakkak bulmalıyız.
Bu nedenle, pointer veri tipinin tam sayıya dönüştürülmesi işlemi yaparken, yukarıda bahsedilen hususlara dikkat etmek gerekmektedir. Aksi takdirde, programımız hatalı sonuçlar verebilir ve istenmeyen durumlarla karşı karşıya kalabiliriz.
Referans Veri Tipi
C++ programlama dilinde kullanılan veri tipleri arasında referans veri tipi de bulunmaktadır. Referans veri tipi, bir değişkenin bellekteki adresine referans alarak işlem yapmamızı sağlar. Yani, bellekteki bir değişkenin adresini tutar ve o adresteki veriyi kullanmamızı sağlar.
Referanslar, özellikle fonksiyonlarda kullanıldığında oldukça yararlıdır. Fonksiyonlara argüman olarak gönderilen değişkenler, kopyalanarak gönderildiğinden dolayı orijinal değişkenin bellekteki adresi fonksiyon içinde değiştirilemez. Ancak, referans olarak gönderdiğimizde, orijinal değişkenin bellekteki adresine işaret edildiği için fonksiyon içinde yapacağımız değişiklikler orijinal değişkene de yansır.
Referans Veri Tipi | Kullanımı |
---|---|
& | int x = 5; int &y = x; |
Yukarıdaki örnekte, "int &y" yapısı ile "y", "x" değişkeninin bellekteki adresine referans alınarak tanımlanıyor. Bu şekilde yapılan işlemlerde "y" değişkeni, "x" değişkeninin değerlerini bellekteki aynı adresten okuyacak ve herhangi bir değişiklik yapılacaksa da yine aynı bellek adresine işaret ettiği için "x" değişkeni de değişecektir.
Tip Dönüştürme İşlemleri
C++ programlama dilinde kullanılan referans veri tipi, belirli bir adrese gösteren bir türdür. Referanslar, ilgili değişkenlere kolay erişim sağlar. Bu nedenle, C++ programlama dilinde referans veri türünün kullanımı oldukça yaygındır. Referans veri tipinin başka bir veri türüne dönüştürülmesi işlemleri de tam sayı ve ondalıklı sayı veri tipleri için yapılanlarla benzerdir.
Referans veri tipi başka bir veri türüne dönüştürüldüğünde, tür dönüştürmesi gerçekleşir. Ancak, bu işlemin bazı riskleri bulunmaktadır. Özellikle, kaynak veri türünün bellekteki boyutu ve hedef veri türünün bellekteki boyutu farklıysa, tür dönüştürmesi işlemi bazen beklenmedik hatalara neden olabilmektedir.
İşlem esnasında, belirli bir referans veri tipi, başka bir veri türüne dönüştürülmüşse, kaynak veri türüne ait verilerin tamamı hedef veri türünde depolanamayabilir. Bu durumda, belirli bir bilgi kaybı yaşanabilir. Bu nedenle, referans veri tipini başka bir veri türüne dönüştürmeden önce, işlemi gerçekleştirecek kişinin, verilerin kaybolmasına neden olacak potansiyel etkilere karşı dikkatli olması gerekmektedir.