Dijital Elektronik -3- Sayı Sistemleri ve İkilik Sayı Sistemi

Sayı sistemleri lise matematik dersinde bile gördüğümüz ve gerçek hayatta ne işe yarayıp yaramayacağı konusunda emin olmadığımız konulardan biriydi. Şimdi ise sayı sistemlerinin gerçek hayatta karşımıza çıktığını görmekteyiz. Sayı sistemlerinin tarihine baktığımızda 10’luk ve 60’lık sayı sistemlerinin kullanıldığını görürüz. Sümerlilerin kullandığı 60’lık sayı sistemi günümüzde saat hesaplamaları, astronomi ve haritacılıkta kullanılmaktadır. Onluk sayı sistemi ise matematiğin temelini oluşturur ve bunları ifade etmek için 10 adet rakam kullanırız. Bu rakamları insanların matematikte kullanması gayet kolay iken dijital sistemlerde bir ve sıfır diye ifade edilen ikilik bir durum olduğu için onluk sayı sisteminin kullanılması pek mümkün olmamaktadır. Bunun için biz dijital elektronikte 2 ve katları olan sayısı sistemini kullanırız ve onluk sayı sistemine çeviririz.

Dijital elektronik analog elektronik gibi zor değildir. Analog elektronikte bir sürü hesap ve formül yani matematik ve fizik gerekli iken dijital elektronikte mantık gereklidir. Mühendislik fakültelerinde mantık dersi var mı bilmiyorum ama yurtdışında üniversitelerde dört yıllık mantık (logic) bölümü bile bulunmaktadır. Sanıldığı gibi iyi programcı olmak için iyi matematik bilgisi şart değildir. Bütün temel mantık üzerine kurulu iken matematik ileri seviye olarak ancak üst seviye diyeceğimiz (oyun motoru gibi) hesaplamalarda kullanılmaktadır. Algoritmaların temeli mantık üzerinedir. Bu durumda mantık öğrenmenin dijital sistemleri kavramada ve yazılım yazmada oldukça faydası olacaktır. Ne yazık ki mühendislik fakültelerinde mantık gibi bir bilimden öğrenciler haberdar olmadığı için iyi programlamayı iyi matematik bilmekte görmektedirler.

Dijital elektronik ne kadar aritmetik ve mantık işlemleri üzerine kurulu olsa da bu işlemlerin yapılabilmesi için verinin bulunması şarttır. Bir veri olmadan bu işlemleri yapmamız mümkün değildir. Elektronik bir sistemde ise verilerin ne şekilde ifade edileceğini az çok kestirebiliriz. Elektrikten başka bir şeyle ifade edilecek değildir. Elektrik bilgiyi nasıl ifade edebilir diye düşünebilirsiniz. Bir lambanın yanması da yanmaması da bir bilgi ifade etmektedir. Lamba yanıyorsa “açık” yanmıyorsa “kapalı” deriz. Bu bizim için bir şey ifade ediyorsa aynı şekilde transistörde elektrik varsa “açık” yoksa “kapalı” konumda olabilir. Açık veya kapalı olması iki farklı durumu ifade ettiği için temel mantık işlemlerinde çok rahat kullanılabilir. Elektrik var ise lamba yanar, elektrik yoksa lamba yanmaz. “Var” ve “Yok” kavramları birbirlerine eğer, ise, öyleyse, büyükse, küçükse, değilse gibi bağlarla bağlanabilir. Burada “var” elektriğin olması “yok” ise elektriğin olmamasıdır. Burada mantık işlemlerini sayı ifade etmeden bir şekilde yapsak da bu ikilik durumu sayı haline getirip belli sayı ve harfleri temsil edebilir miyiz, diye sorabiliriz. Bizim zaten hali hazırda kullandığımız rakamlar belli bir varlık veya yokluk ifadesini temsil etmekteydi. Sıfır (0) dediğimizde “Yok” demekti. Sıfır bir varlık veya sayı ifade etmez. O halde elektriğin olmadığı konumu Sıfır (0) olarak ifade etmemiz mümkündür. Bir (1) ise sayı ifade etmenin yanında varlığı da ifade eder. Sıfırın zıttı olarak düşünebiliriz. Bu durumda elektriğin var olduğu konumu bir (1) rakamı ile ifade edebiliriz. Bu rakamları ise onluk tabanda yaptığımız gibi basamak sıralamasına koyarsak belli bir büyüklüğü ifade edebiliriz. Buna binary (ikilik) sayılar denmektedir.

Bilgisayar sistemlerindeki matematiğin bizim gördüğümüz ve aslında olan olmak üzere ikiye ayrıldığını anlamış olmalısınız. Biz elektronikte ve gömülü sistemlerde sanalla değil gerçekle daha çok ilgilenmekteyiz. Bir bilgisayar programı yazarken ikilik veya onaltılık sayılarla pek işimiz olmasa da donanıma yakın olduğumuz sistemlerde aslında onluk sayılarla pek işimiz olmamaktadır. Bütün bilgisayar sistemleri “Var” ya da “Yok” tabanı üzerine kurulduğu için çoğu özellik ikinin katları olarak ifade edilir. Örneğin 8-bit, 16-bit, 32-bit işlemcilerden bahsetsek de asla 20-bit işlemciden bahsedemeyiz. “Var” ya da “Yok” ifadesini içinde bulunduran bir hücreye “Bit” adı verilmektedir. Dijital elektronikte en küçük birim olarak bit ifadesini kullanırız. Hafıza birimlerinde de 32, 64, 128, 256, 512 olarak ikinin katları şeklinde artmaktadır. 2 ^ n olarak da ifade etmemiz mümkündür.

Desimal yani onluk sayıların bizim her zaman kullandığımız sayılar olduğunu biliyorsunuz. Yalnız bu iki sayı sisteminin birbirine nasıl dönüştürüleceği konusunda kafanızda bir soru işareti yer almalı. Sonuçta günlük hayatta kullandığımız bir sayıyı dijital sistemde ifade edebilmek, dijital sistemde kullanılan bir sayıyı da günlük hayatta kullanabilmek için bunları birbirine çevirmemiz gereklidir.

Onluk bir sayıyı ikilik bir sayıya çevirmek istediğimiz zaman sırasıyla ikiye bölerek kalanları sırayla yazmamız gereklidir. Bir örnekle nasıl olduğunu gösterelim ve ne kadar basit olduğunu görün.

İşlem Sonuç Kalan
27 / 2  13 1 (Üst Bit / MSB)
13 / 2  6 1
6 / 2  3 0
3 / 2 1 1
1 / 2  0 1 (Alt Bit / LSB)

Yukarıda 27 sayısını ikilik tabanda çevirimini yaptık. Sonucumuz üst bitten itibaren “11011” olacaktır.  İstersek çevirici programları kullanıp hazır olarak da yapabiliriz. Aşağıdaki kullanabileceğimiz pek çok programdan biridir.

https://www.rapidtables.com/convert/number/decimal-to-binary.html

İkilik sistemden onluk sisteme çevirmek ise daha basit olmaktadır. Bilindiği üzere ikilik sistemde basamaklar ikinin katlarını temsil ediyordu. Yani bir bitin önüne bir bir daha koymak alt biti ikiye katlamak gibi olmaktadır. Örneğin 1111 sayısı 0111 sayısının tam iki katıdır. Son basamaktaki bir sayısını ikinin katı olmadığı için sonradan ilave ederiz.  Buna göre ikinin üslerini birbiriyle toplayarak onluk tabandaki sayıyı bulabiliriz. Şimdi “11001111” sayısının onluk tabandaki karşılığını bulalım

2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
1 1 0 0 1 1 1 1
128 64 0 0 8 4 2 1

Şimdi elde ettiğimiz sayıları toplayalım.

128 + 64 + 0 + 0 + 8 + 4 + 2 +1 = 207 

2’nin üsleri yerine 128, 64, 32… diye sıralayıp hepsine karşılık gelen bitlerle karşılaştırarak toplayıp yine aynı sayıyı elde edebilirsiniz.  İkilik sistemde her basamak değeri ikiye katlayacaktır. Aynı onluk sistemde yüzler basamağının onlar basamağının on katı olması gibi düşünebiliriz. Oldukça basit bir matematik hesabı olduğundan daha fazla ayrıntıya girmeyeceğiz.

Sonraki makalelerde ikilik sayılar üzerinden yapılan aritmetik işlemleri ve onaltılık tabandaki sayıları anlatacağız.

Bizi Facebook grubumuzda takip etmeyi unutmayın. Bilgili ve öğrenmeye hevesli bir topluluk oluşturmak istiyoruz.

https://www.facebook.com/groups/1233336523490761/

UYARI!!

Gökhan Dökmetaş

"Arduino Eğitim Kitabı" ve "Arduino ve Raspberry PI ile Nesnelerin İnterneti" kitaplarının yazarı. Başkent Teknoloji ve Dedektör Merkezi'nde Ar-ge Sorumlusu. Araştırmacı-Yazar.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.