C# Eğitimlerinde 12. dersimiz. Bu dersimizle beraber tam sayı veri tiplerine giriş yapmış olacağız.

SByte Veri Tipi

-128 ile 128 arasındaki sayıları bünyesinde tutabilen bir tam sayı veri tipidir.

Bellekte 1 Byte yer kaplar. O yüzden negatif  tarafta -128 den daha küçük olmadığını, pozitif tarafta +128 den  daha büyük olmayacağını bildiğimiz değişkenleri SByte olarak tutabiliriz.

SByte türünün tanımlayıcısı C# üzerinde sbyte şeklindedir.

İşte örneğimizde pek çok sbyte kullanımı.

Bu tür bir aralıktaki değerleri tutan değişkenlerde üst sınır ve alt sınırda hep bir kararsızlığa düşeriz. Örneklerim içinde bunu da göstermeye çalıştım.

sbyte veri tipi üst sınırı en sonra 127 değerini alabilirken alt sınırda -128 i alabilmektedir. 128 yazdığımda hata alıyoruz. Aynı şekilde -128 de bir hata almaz iken -129 değerinde hata alıyoruz.

Byte Veri Tipi

Byte da 0 ile 255 arası değer alabilen bir tam sayı veri tipidir. En son alabileceği değer 255 dir. C# üzerindeki tanımlayıcısı byte şeklindedir.

Önemli bir noktadan bahsetmeye çalışacağım şimdi Boxing yaparak tür dönüşümünü de görmüş olacağız. 255 den büyük bir değer direk byte değere atadığımızda gördüğümüz gibi hata almaktayız. Peki 255 den büyük bir türü byte türüne boxing yaparak dönüşüme uğratsaydık ne olurdu.

Byte türünde Z4 tanımladık. int türünde Z3 ve Z3 değerine byte tipinin alacağı sınırların dışında bir değer verdik. Sonrada bu değeri bir boxing işlemi ile int türünü byte türüne dönüştürdük.

Ancak şöyle bir sorunumuz var geçmişten bildiğimiz bir konu var byte 255 den daha büyük bir değer alamazdı. Şimdi bu dönüşüm yapılınca 256 değerini alabilecek mi?

Tabi ki hayır. Burada yapacağı işlem 256 değerine göre mod alma işlemidir. Yani gelen değeri 256 ya böler ve kalan değer yeni değerimizdir.

Yani şu durumda Z4 ün 0 olmasını bekleyeceğiz.

Gördüğünüz gibi beklediğimiz gibi de gerçekleşti. Byte ile işlem yaparken buna dikkat etmelisiniz.

Tür dönüşümleri konumuza geldiğimizde Boxing işlemi ile tür dönüşümüne detaylı değineceğiz.

Byte türünün bir başka örneğine bakalım şimdi. Biliyorsunuzki bir karakterin ASCII kodları bir sayı değeri ile ifade edilir. İşte char tipli bir değişken boxing yöntemi ile byte türüne dönüştürülürse o karakterin ASCII kodlarındaki sayısal karşılığını görürüz.

Şimdi bunu örneklerle görelim.

Burada dikkat etmemiz gereken bir nokta string olarak gelen textbox değerinin char.Parse() metodu ile char türüne dönüştürülmesi gerektiğidir.

Eğer biz textbox’a bir karakterden daha uzun bir değer yazarsak tür dönüşümünü yapamayacağı için hata alırız. Programlama yaparken bu tür kullanıcı hatalarının önüne geçmek için ilerde önleme yöntemlerine de göz atacağız.

Şimdi programı çalıştırıp bakalım.

a harfinin ASCII kodu 97 imiş.

Büyük a ile Küçük a nın bir birinden farklı sayı değerleriyle tutulduğunu buradan anlayabiliyoruz. Büyük A’nın değeri 65 imiş.

Birde hata mesajını görmek için bir karakterden uzun bir değer girdim. Hata mesajında da olayı net bir şekilde anlayabilmekteyiz.

Bir sonraki eğitim yazımda görüşmek üzere. Selametle.