1.1 Sayı Sistemleri

Sayı sistemleri, sayıları verilen bir kümedeki elemanlarla temsil etmek ve yazmak için türetilmiş sistemleridir. Farklı sayi sistemleri, kümelerindeki eleman sayılarıyla isimlendirilirler ve bu ilgili sayının tabanı olarak adlandırılır. Günlük hayatta en çok kullandığımız 10’luk sistem, kümesinde 0-9 aralığındaki 10 rakamı barındırır. 10’luk sistemle ifade edilen sayılara 10 tabanındaki sayılar denir ve 10 tabanındaki bir $A$ sayısı $(A)_{10}$ biçiminde gösterilir. Diğer tüm sayı sistemlerinde de durum aynıdır.

Bir sayının tabanı yani bir sayı sistemindeki eleman sayısı 1’den büyük bir tam sayı olmalıdır. Negatif tabanlı sistemler matematiksel olarak mümkündür ancak yaygın olarak kullanılmazlar. Sayı sistemlerini en genel haliyle, basamaktaki rakamın $a$, taban katsayısının $b$ ile gösterildiği aşağıdaki notasyonla ifade edebiliriz.

Bir $b$ tabanında yazılabilecek $n $ basamaklı farklı sayı adedine $b^n$ ile, yazılabilecek en büyük sayının büyüklüğüne de $b^n\text{\textendash}1$ formülleriyle ulaşabiliriz.

Örnek: 10 tabanında 2 basamaklı kaç farklı sayı yazılabilir ve yazılabilecek en büyük sayı değeri kaçtır?

Örnek: 8 tabanında 3 basamaklı kaç farklı sayı yazılabilir ve yazılabilecek en büyük sayı değeri kaçtır?

1.1.1 Yaygın Sayı Sistemleri

En yaygın kullanılan sayı sistemi günlük hayatta da kullandığımız 10’luk (Decimal) sistemdir. Bunu dijital elektronik, bilgisayarlar, hafıza birimleri ve veri iletişiminde hata kontrolü gibi birçok alanda kullandığımız 2’lik (Binary) sistem takip eder. Bellek adreslerinin temsili ve grafik uygulamalarda renk temsili için kullandığımız 16’lık (Hexadecimal) sistem ve Unix tabanlı sistemlerde dosya izinlerini ifade etmek için kullanılan ve eski bilgisayarlarda ikili sistemin kolay okunabilir ve yönetilebilir bir versiyonu olarak kullanılmış 8’lik (Octal) sistem de bulunmaktadır. $(1)$ numaralı ifade ile bu sayı sistemleri ile gösterilen sayıların gerçek değerlerini yani decimal karşılıklarını bulabiliriz.

Örnek: $(47.2)_8$ sayısının değeri nedir?

Örnek: $(1101.101)_2$ sayısının değeri nedir?

Hexadecimal sayı sistemi, bahsedilen diğer sayı sistemlerinden farklı olarak sayıları temsil etmek için rakamların yanında harfler de içerir.

Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F
Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Örnek: $(3\text{B.A})_{16}$ sayısının değeri nedir?

1.1.2 Sayı Sistemlerinin Dönüştürülmesi

Yaygın sayı sistemleri başlığı altında bahsedildiği gibi $(1)$ numaralı notasyon kullanılarak tüm tabanlardan decimal sisteme dönüşüm yapılabilir. Bu sebeple bu başlık altında decimal sistemden diğer sistemlere ve diğer sistemler arasındaki dönüşümler anlatılacaktır.

1.1.2.1 Decimal'den Diğer Sistemlere Dönüşüm

Decimal bir sistemden farklı bir tabana sayı dönüşümlerinde tam kısmın dönüşümü sayının hedef tabana bölünmesiyle gerçekleşir. Tam kısım hedef tabana bölünür, bölüm işleminin kalanı sayının hedef sistemdeki gösterimi için bir basamak değerini verir. Bölüm sonucu hedef tabana tekrar bölünerek bir sonraki basamak değeri elde edilir ve bu işlem bölüm 0 olana kadar devam eder. İlk kalan hedef sistemdeki gösterimin en sağdaki basamağını temsil edecek şekilde kalanlar sıralanarak tam kısmın dönüşümü tamamlanır.

Kesir kısmının dönüşümü sayının tam kısmı alınmayarak kesir kısmının hedef tabanla çarpılmasıyla gerçekleşir. Çarpımın sonucunda elde edilen sayının tam kısmı hedef sistemdeki gösterimin kesir kısmının en soldaki basamağını verir. Çarpım sonucunun tam kısmını almayarak çarpma işlemine devam edilir ve her çarpımın tam kısmı sıradaki basamağı verir. Burada istenen hassasiyete göre belirli bir basamak sayısında işlem sonlandırılabilir.

Örnek: $(58.25)_{10}$ sayısının hexadecimal sistemdeki karşılığı nedir?

Örnek: $(447.83)_{10}$ sayısının hexadecimal sistemdeki karşılığı nedir?

Örnek: $(447.83)_{10}$ sayısının octal sistemdeki karşılığı nedir?

Örnek: $(125.15)_{10}$ sayısının binary sistemdeki karşılığı nedir?

1.1.2.2 Hexadecimal ve Binary Sistemler Arasındaki Dönüşüm

Hexadecimal sistemde 1 basamakla gösterilebilen sayı aralığının 0-F yani decimal sistem için düşünüldüğünde 0-15 olması ve bu aralığın binary sistemde 4 bit ile gösterilebilen sayı aralığıyla bire bir uyuşması dönüşüm işlemini oldukça kolay hale getirir. Hexadecimal sistemdeki bir sayı binary sistemine dönüştürülürken her hexadecimal basamak 4 bitlik binary sayıya dönüştürülerek aynı sırada yan yana yazılır. Binary sistemden hexadecimal sisteme dönüşümde ise sayının tam kısmı sağdan, kesir kısmı soldan başlayarak 4’erli gruplara ayırılır ve her grup karşılığına denk gelen hexadecimal karakterle değiştirilir.

Örnek: $(2\text{A}\text{C}.\text{B4})_{16}$ sayısının binary sistemdeki karşılığı nedir?

Örnek: $(101000101111.110101110101)_{2}$ sayısının hexadecimal sistemdeki karşılığı nedir?

1.1.2.3 Octal ve Binary Sistemler Arasındaki Dönüşüm

Hexadecimal ve binary sistem arasındaki durumun benzeri octal ve binary sistemler arasında da geçerlidir. Octal sistemde kullanılan en büyük rakam olan 7, binary sistemde 3 bit ile gösterilebilen en büyük sayıdır.

Örnek: $(634.37)_8$ sayısının binary sistemdeki karşılığı nedir?

Örnek: $(101001011.100001)_2$ sayısının octal sistemdeki karşılığı nedir?

1.1.2.4 Hexadecimal ve Octal Sistemler Arasındaki Dönüşüm

Hexadecimal ve octal sistemler arasındaki dönüşümde binary sistemin hexadecimal ve octal sistemlerle arasındaki ilişkiden faydalanılır. Dönüştürülmek istenen sayı önce binary sisteme daha sonra binary’den hedef sisteme dönüştürülür.

Örnek: $(716.424)_8$ sayısının hexadecimal sistemdeki karşılığı nedir?

Örnek: $(5\text{A}.\text{B}8)_{16}$ sayısının octal sistemdeki karşılığı nedir?