Yazan : Şadi Evren ŞEKER
Matematikte sıkça kullanılan ve bilgisayar bilimlerinde ver işlenirken sıkça karşımıza çıkan bir konudur. İnsanlığın günümüzde en yoğun olarak kullandığı ve hemen hepimize ilk okul sıralarından itibaren öğretilen onluk sayı tabanında 0’dan 9’a kadar olan semboller kullanılır : 0,1,2,3,4,5,6,7,8,9
Değer olarak bu semboller varlık / yokluk veya çoğunluğu ifade eder. Örneğin 0 yokluğu 1 varlığı ve 8 ise sekiz tane varlığı ifade eder. Buradan anlaşılacağı üzere bir çoğunluğun olması için önce varlığın olması gerekir. Yani bütün sayıların ortak çarpanı 1’dir. Sadece 0 sayısının ortak çarpanı 1 değildir.
Sayı tabanları aynı çoğunluğun farklı sembollerle gösterilmesinden başka bir şey değildir. Yani elimizdeki semboller onluk sayı tabanında olduğu gibi 10 tane değil de 2 tane olsaydı ve sadece 0 ve 1 sembolleri ile aynı büyüklükteki değeri göstermek isteseydik daha fazla hane kullanmaktan başka yolumuz yoktur.
Örneğin onluk tabandaki 5 sayısını 2’lik tabana çevirecek olursak : 101 gösterimini elde ederiz.
Her sayı tabanında sağdan itibaren her hane o sayı tabanındaki bir üstü ifade eder. Örneğin onluk sayı tabanında sağdan ilk hane birler, ikinci hane onlar üçüncü hane ise yüzler şeklinde ilerler. Aslında burada 10 tabanı olduğu için 10 sayısının 0., 1. , 2. Üstü alınmış ve 1, 10 , 100 sayıları elde edilmiştir. Dolayısıyla örneğin 384 sayısı = 3 x 100 + 8 x 10 + 4 x 1 şeklinde yazılabilir. Aynı durum diğer sayı tabanları için de geçerlidir.
Örneğin yukarıdaki 101 için = 1 x 4 + 0 x 2 +1 x 1 = 5 olduğu söylenebilir.
Sayıların telaffuzu ve dillere göre okunuşu değişmez. Yani sayı 2 tabanında olunca 101 şeklinde gösteriliyor olması sayının hala beş şeklinde okunmasını gerektirir çünkü aslında ifade edilen büyüklük ya da çoğunluk aynıdır sadece gösterimi değişmiştir.
Bilgisayar bilimlerinde en çok kullanılan sayı tabanları ikilik (binary) , 8 ve 16lık sayı tabanlarıdır ve elbette insanoğlunun daha kolay anlayabildiği ve makineler için daha anlamsız olan onluk sayı tabanı.
16lık sayı tabanı Latince hexadecimal olarak ifade edilir. Her sayı tabanında, o sayı tabanının değeri kadar sembole ihtiyaç duyulur. Örneğin onluk sayı tabanında 10 farklı sembol kullanıldığından bahsetmiştik. Dolayısıyla 16lık sayı tabanında da 16 farklı sembole ihtiyaç duyulmaktadır. Çözüm olarak 0’dan 9’a kadar olan sembollere ilave olarak A,B,C,D,E ve F harfleri kullanılmıştır. Buna göre F harfi 15 değerini ifade etmektedir.
Bu yazı şadi evren şeker tarafından yazılmış ve bilgisayarkavramlari.com sitesinde yayınlanmıştır. Bu içeriğin kopyalanması veya farklı bir sitede yayınlanması hırsızlıktır ve telif hakları yasası gereği suçtur.
Örnek bazı sayıların farklı tabanlardaki gösterimleri:
İkilik tabanda (binary) | Sekizlik tabanda (octal) | Onluk tabanda (decimal) | Onaltılık tabanda (hexadecimal) |
1 | 1 | 1 | 1 |
0 | 0 | 0 | 0 |
0110 | 6 | 6 | 6 |
1010 | 12 | 10 | A |
1111 | 17 | 15 | F |
10101010 | 252 | 170 | AA |
Yukarıdaki tablodan da dikkat edilebileceği üzere ikilik tabandaki bir asyı 8lik tabana çevrilirken her üç hane bir sayıya dönüşür.
Örneğin 1111 sayısını 3er hane ile yazacak olursak 1-111 buradaki her grubu ayrı ayrı çevirdiğimizde 1 = 1 ve 111 = 7 ve iki hane birleştiğinde 17 sonucuna ulaşılır.
Benzer şekilde 10101010 sayısını üçer hane olarak yazacak olursak 10 – 101 – 010 ve bu haneleri çevirecek olursak = 2 – 5 – 2 = 252 sonucuna ulaşılabilir.
Benzer durum onaltılık sayı tabanı için de geçerlidir. Bu sefer sayıyı 4er hanelik gruplara bölmemiz gerekir.
Örneğin 10101010 sayısını bölecek olursak 1010 – 1010 = A – A olarak sonuç daha hızlı bulunabilir.
Programlama dillerinin çoğunda sayıların karışmasını engellemek için sayıların sonunda tabanını belirten harfler konulur. Örneğin 11 sayısının tabanı belirtilmezse C dilinde onluk tabanda onbir olarak algılanırken 11h değeri sonundahi h harfinden anlaşılacağı üzere hexadecimal olarak kabul edilir ve aslında 17 değerine sahiptir. Benzer şekilde 11b ise binary tabanında olup onluk tabanda 3 değerine sahiptir.
Ayrıca küsuratlı sayıların (real numbers) dönüşümü için bu bağlantıya tıklayabilirsiniz.