Bizler, birbirimizle iletişim sağlarken harfleri ve bu harflerden oluşan sözcükleri kullanırız ama bilgisayarla ya da bilgisayar üzerinden iletişim kurmaya kalktığımızda işin rengi biraz değişmekte. Çünkü bilgisayarlar ya da genel olarak elektronik aletler, bizim kullandığımız harflerden hiçbir şey anlamazlar. Klavyeden girdiğimiz her harf, bir şekilde bir tip sayı formatına çevrilir ve bu sayılar, bilgisayarların anlayabildiği yegane yapılardır.
Farklı sayı sistemlerinden bahsetmek gerekirse, günlük hayatta yaptığımız her matematiksel işlem 10’luk sayı sistemi üzerinden gerçekleşir. Bunun dışında bilgisayarların anlayabildiği 2’lik sistem, 4’lük sistem, 8’lik sistem, 16’lık sistem ve bu şekilde benzer sayı sistemleri mevcut. Burada belirttiğim sayı sistemlerinden birkaçının nasıl işlediğini anladıktan sonra hali hazırda kullanılan diğer sayı sistemlerinin de çalışma mantığını kolayca kavrayabilirsiniz. Bu yazıda, bu sistemlerde kullanılan aritmetik işlemleri anlatmayacağım ve genel olarak nerede, nasıl kullanıldıkları hakkında bilgi vermeye çalışacağım.
Binary Sayı Sistemi (2’lik Sistem)
Binary sayı sistemi sadece iki sayıdan oluşmaktadır ve bunlar 0 ve 1’dir. Bu sistemde var olan her bir sayı 0’lar ve 1’ler aracılığı ile ifade edilir. 2’lik sayı sistemi denmesinin sebebi, 2 tane sayı içermesinden kaynaklıdır. Bu mantık, diğer bütün sistemlerde de aynıdır.
Binary sayı sistemi bilgisayar teknolojilerinde kullanılmak üzere ortaya çıkmış bir sistemdir. Bütün programlama dilleri ve bilgisayar sistemi 2’lik sayı sistemi üzerine kurulmuştur. Bu sistemde, girilen herhangi bir ifadeyi 2’lik sisteme çevirmek için Digital Encoding yöntemi kullanılır ve bu yöntem, girilen ifadeyi 0’lar ve 1’ler üzerinden ifade etmek üzere kullanılır.
Octal Sayı Sistemi (8’lik Sistem)
Octal sayı sistemi 0 ile 7 arasındaki rakamlardan oluşmaktadır ve bunlar 0, 1, 2, 3, 4, 5, 6, 7’dir.
Bu sayı sistemi de aynı binary sistem gibi yine bilgi teknolojileri alanında kullanılmakta. Geçmişte 26 ve 36 bitlik işlemciler kullanılırken, bu sayı sistemi tercih ediliyordu ama zamanla 32 ve 64 bitlik işlemciler geniş kitlelerce kullanılmaya başlandığı için bu işlemcilerde 16’lık sayı sistemi (hexedecimal) kullanılmaya başlandı. Buna rağmen octal sayı sisteminin günümüzde hala geniş bir kullanım alanı mevcut. Örneğin, Unix tabanlı işletim sistemlerinde dosya izinleri (read, write, execute) hala octal sayı sistemi ile ifade ediliyor.
Bildiğiniz üzere elektronik temelde iki durumlu kapılara (and, or vb.) bağlıdır. Karışık ve büyük sistemlerde, kapıların durumlarını ifade etmek için binary sistem kullanılmaya kalktığında veri boyutları oldukça büyüyordu, bu sebeple bu uzun verileri kısaltmak için octal sayı sistemi kullanılmakta.
Hexadecimal Sayı Sistemi (16’lık Sistem)
Hexadecimal sayı sistemi 16 değerden oluşmakta ve bunlar 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E ve F. Bu sistemde A 10’a, B 11’e, C 12’ye, D 13’e, E 14’e ve F 15’e karşılık gelmektedir.
Yukarıda da belirttiğim gibi, bilgisayarlar yalnızca 0’lar ve 1’leri anlayabilirler ancak günümüzdeki işlemci mimarisiyle alakalı olarak, bilgisayar üzerinde kullanılan bir diğer sayı sistemi de hexadecimal sistemdir. Örneğin, bilgisayar ekranında gördüğümüz görüntüler piksel adını verdiğimiz yapılarla oluşturulmuştur ve her bir piksel aslında bir binary sayı ile ifade edilmektedir. Eğer bir bilgisayar ekranı, 16 bitlik olacak şekilde tasarlanmışsa, her bir pikseli ifade etmek için 2^16 (2 üzeri 16) yani 65.536 karakter kullanır. Bu da aslında 65.536 farklı renge tekabül eder.
Hexadecimal sayı sistemi genellikle programcılar tarafından, binary ifadeleri basitleştirmek için kullanılır. 2^4, 16’ya eşit olduğundan dolayı, 2 ve 16 arasında lineer bir ilişki olduğuna da belirtmek isterim. Bu ne demek, aslında her bir hexadecimal karakter, 4 karakterlik bir binary değere eşit demek.
Toplamak gerekirse, hexadecimal sistem genel olarak bilgisayarlardaki depolama alanları üzerindeki alanları adreslemek, monitörlerdeki renkleri belirlemek, ethernet kartı gibi bilgisayar donanımlarında kullanılan MAC (Media Access Control) adreslerini ifade etmek ve tabi ki bilgisayarlar üzerinde oluşan hataları göstermek için kullanılır.