decimal_binaryİkili Sistem (Binary) Nedir ?

İkili sayılar 2 tabanında yazılarak elde edilir. Dolayısı ile ikilik sistemdeki tüm sayılar 1 ve 0‘dan ibarettir. Elektrik devrelerindeki kolay uygulanabilirliği sebebiyle günümüz bilgisayarlarının neredeyse tamamında kullanılmaktadır.

Günlük hayatımızda kullandığımız sayılar, onluk tabanda bir başka ismiyle decimal olarak kaynaklarda belirtilir. Onluk sistemi oluşturan rakamlar bildiğimiz gibi 0,1,2,3,4,5,6,7,8,9 şeklindedir. Matematiksel olarak ifade etmek gerekirse,kullandığımız tüm sayılar 10’luk tabanda verilmektedir. Örneğin 315 sayısını ele alırsak, bu sayıyı çözümlemek istediğimizde, 10’un kuvvetleriyle çarparak buluruz 3*10^2+1*10+5.10^0 şeklinde. (^ ifadesi üst alma işlemi olarak kullanılmıştır.) İkilik sayı sistemindeki tek fark bu tabanının 10 yerine 2 olmasıdır. Dolayısıyla kullanılabilecek rakamlar 1 ve 0’dır.

Sekizlik (Desimal) Sayı Sistemi Nedir ?

Mantıksal olarak ikili sistemle birebir aynıdır. Tek fark tabanının 2 yerine 8 olmasıdır. Sekizlik sayı sistemindeki rakamlar 0,1,2,3,4,5,6,7 şeklindedir. Sekizlik sistemdeki sayılar ise 0,1,2,3,4,5,6,7,10,11,.. şeklinde sıralanır. Burada kullandığımız rakam ve sayı ifadelerine dikkat ediniz.

heksabinerOnaltılı (Heksadesimal) Sayı Sistemi Nedir ?

Binary ve desimal sistemden sonra mantık olarak aynı ancak fark olarak 16 lık tabana sahip sayılar onaltılık (hexadesimal) sayılardır. Onaltılık sistemde kullanabileceğimiz rakamlar benzer mantıkla yine 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 şeklindedir. Ancak onaltılık sisteme göre yazılan sayılar 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,10,11,.. şeklindedir. Burada neden A, B, C, D, E, F kullandığımızı şu şekilde açıklayalım.

İlk kısımda rakam ifadesinden bahsetmiştim dikkat ederseniz, 9’dan sonra yazdığım 10,11,12,13,14,15 sayılarını da rakam kabul ettim. 10’luk sayı sistemine göre düşündüğümüz zaman 0’dan 9’a kadar olan sayıları rakam olarak kabul ediyorduk. Şimdi ise işlemlerimizi 10 tabanında değilde 16 tabanına göre yaptığımızı düşünürsek, 10,11,12,13,14,15 ifadeleri 16 tabanına göre birer rakamdır. Peki neden bunlara A,B,C,D,E,F gibi isimler veriyoruz ? Onu da şu şekilde açıklayalım 16 sayısını 16 tabanına göre yazdığımızda 16 tabanında (10) sayısına ulaşırız. Bu demek oluyor ki her 16 lık periyotta (10) sayısına ulaşacağız. Bizim ilk başta bahsettiğimiz 16 lık tabandaki 9 dan sonra gelen 10 rakamı diğer (10) sayıları ile karışmaması için ona A harfini veriyoruz. Aynı şekilde 11,12,13,14,15 ifadelerini de harflendiriyoruz.

Peki Bu Sistemler Ne İşimize Yarar ?

Bildiğimiz gibi bilgisayar 1 ve 0 komutlarına göre çalışıyor yani yukarıda anlattığımız ikili mantığa göre.Yani sayıları bu şekilde kullanarak bilgileri bellekte kodlamayı sağlıyoruz.

Bunu bir örnek ile şu şekilde anlatayım, 

Arduino da yaptığım bir proje üzerinden örnek vererek anlatmak istiyorum. Arduino nedir diyenler şu yazıyı okuyup kısaca bilgi edinebilirler, Arduino Nedir ? Arduino’ya Merhaba

pr_03_1484_min

Arduino ile birlikte kullandığım 8×8 Dot Matris, içerisinde ledler bulunan ve ikili sistemle çalışan bir ekipmandır. (Yandaki resimde görüldüğü gibi daha sonra bununla ilgili bir projeyi arduino kısmında paylaşacağım ilgilenen arkadaşlar için şimdiden duyurayım). 8×8 Dot Matris ikili sistemine göre çalışmasına rağmen kodlamasını onaltılık sisteme göre yapıyoruz. Dot matris üzerindeki ledlerin yanması için 1 komutu sönmesi için de 0 komutunu kullanıyoruz. Kodlama mantığında her satır için 1 kod göndermemiz gerekiyor, 8×8 matris üzerinde 8 satır bulunduğu için toplamda 8 kod gönderirsek, onaltılık sistemde 1 kod göndermiş oluyoruz. Buradaki mantığa baktığımızda yukarıda belirttiğim gibi kodu bellekte tutmak için bu sistemi kullanıyoruz.

Örneğin, Matris üzerinde I karakterini oluşturmak istiyoruz. Bunun için şu şekilde görüntü oluşturmamız gerekiyor.

 0 1 1 1 1 1 1 0
 0 0 0 1 0 0 0 0
 0 0 0 1 0 0 0 0
 0 0 0 1 0 0 0 0
 0 0 0 1 0 0 0 0
 0 0 0 1 0 0 0 0
 0 0 0 1 0 0 0 0
 0 1 1 1 1 1 1 0

Şekilde gösterdiğimiz ifade I karakteri,1 karakterdir. Bunun için ifadeyi kod haline getirirken onaltılık sistem kullanacağız, satır satır ele alalım şimdi.

1. satırdaki şekli oluşturmamız için, 0 1 1 1 1 1 1 0 sayısını oluşturmamız gerekiyor, bu sayılar 2 tabanında olduğu için bunu ilk başta 2 tabanından çevirmemiz daha sonra 16 lık tabana çevirmemiz gerekiyor taban aritmetiğindeki kısa yoldan bunu parçalayarak yani (0111) ve (1110) şeklinde ayırarak 16 tabanında yazabiliriz.

(0111) ifadesini 2 tabanında açtığımızda, 7 sayısını buluruz.

(1110) ifadesini açtığımızda ise 14 sayısına ulaşırız.

Dikkat etmemiz gereken şey bu sayıları 16 lık tabana göre nasıl yazacağımız 7 rakamı aynen yazılabildiği için onda bir sıkıntı yok,14 rakamını (16 tabanına göre rakam biliyorsunuz ki) E harfi ile gösterdiğimizi söylemiştik. Dolayısı ile 7E ifadesi 0 1 1 1 1 1 1 0 satırını temsil eder. Kodlama yaparken 16lık tabanda yazdığımızı belirtmek için başına 0x(belirteç) ekliyoruz yani bu ifadenin (0 1 1 1 1 1 1 0) kod haline gelmiş şekli 0x7E ifadesidir.

Bu şekilde tüm satırları yaptığımızda, I karakteri 8 elemanlı bir diziden oluşmaktadır ve bu 16 lık sistemde 1 karaktere eşit olmaktadır..

{0x7E,0x10,0x10,0x10,0x10,0x10,0x10,0x7E}

dizisi I harfini sembol eder şeklinde ifade edebiliriz.

Bu yazıda ikili, sekizli, onaltılı sayıların ne olduklarını,nasıl kullandığımızı, ne işe yaradıklarını basit bir şekilde anlatmaya çalıştım, umarım faydalı olabilmişimdir.

İyi çalışmalar.