Onlu Sayılandırmadan Dönüştürme Sekizli ve onaltılı sayı sistemleri, ikilinin (2 tabanı) çarpanı olan tabanlara sahiptir, onaltılı yada sekizli ve ikili arasında geri ve ileri dönüşüm çok kolaydır İkili, sekizli yada onaltılıdan onlu düzene dönüştürmek nispeten kolaydır Daima onlu sistemin verdiği alışkanlık bu kolaylığı sağlar, (Basitçe kod değerleri ve basamak-katsayılarının çarpımı toplanır) Bununla beraber onludan bu "yabancı" sayılandırma sistemlerinden herhangi birine dönüşüm farklı bir konudur Onlu düzende gösterildiği gibi düşünülen değere "uydur" maya çalıştığınız ikili, sekizli yada onaltılı notasyonu büyük olasılıkla çok daha duyarlı yapacak yöntem, "dene-ve-uydur" yöntemidir Örneğin, ikili düzende 87 nin onlu değerini göstermek istediğimi varsayalım İkili bir sayı alanı çizerek basamak- katsayı değerleri ile tamamlamaya başlayalım: - - - - - - - - katsayı = 128 64 32 16 8 4 2 1 Güzel, 128 ler basamağında "1" bit e sahip olamayacağımızı biliyoruz, çünkü bu bize hemen hemen 87 den daha büyük bir değer verecektir Bununla birlikte, bu yüzden sağa doğru sonraki katsayı (64) 87 den küçüktür, orada "1" e sahip olmamız gerektiğini biliyoruz 1 - - - - - - - Şimdiye kadarki onlu değer = 64 10 katsayı = 64 32 16 8 4 2 1 Eğer sağa doğru sonraki basamağı "1" yapsaydık, toplam değerimiz 64 10 + 32 10 yada 96 10 olacaktı Bu 87 10 dan büyüktür, bu yüzden bu bit in "0" olması gerektiğini biliyoruz Eğer sonraki basamak (16 lar) bit ini "1" e eşitlersek, bu toplam değerimizi düşündüğümüz değere (87 10 ) daha yakın ve onu aşmayan 64 10 + 16 10 yada 80 10 a getirir: 1 0 1 - - - - - - - Şimdiye kadarki onlu değer = 80 10 katsayı = 6 3 1 8 4 2 1 (onlu 4 2 6 gösterim) İstediğimiz toplam değere onu aşmadan ulaşmamız gerektiğinden her bir düşük-katsayılı bit i ayarlayarak bu dizeye devam edersek neticede doğru sonuca ulaşacağız: 1 0 1 0 1 1 1 - - - - - - - Şimdiye kadarki onlu değer = 87 10 katsayı = 64 32 16 8 4 2 1 Bu dene-ve-uydur stratejisi sekizli ve onaltılı dönüşümler içinde çalışacaktır Aynı onlu rakam, 87 10 u alalım ve sekizli sayılandırmaya dönüştürelim: - - -
Eğer 64 ler basamağında "1" kodu koyarsak 64 10 (87 10 dan daha küçük) toplam sonucunu elde ederiz Eğer 64 ler basamağına "2" kodunu koyarsak, 128 10 (87 10 dan daha büyük) toplam değerini elde ederiz Bu bize 64 ler basamağında sekizli sayılandırmamızın "1" ile başlaması gerektiğini söyler: 1 - - - Şimdiye kadarki onlu değer = 64 10 katsayı = 6 8 1 (onlu 4 gösterimde) Şimdi, 8 ler basamağındaki kod değerleri ile 87 yi aşmadan ve mümkün olduğunca ona en yakın toplam (onlu) değeri deneyecek ve elde edecek bir deneye ihtiyacımız var İlk birkaç kod seçeneğini deneyerek, ulaşırız: "1" = 64 10 + 8 10 = 72 10 "2" = 64 10 + 16 10 = 80 10 "3" = 64 10 + 24 10 = 88 10 8 ler basamağındaki "3" kod değeri bize istediğimiz toplam 87 10 dan fazla verecektir bu yüzden "2" dir! 1 2 - - - Şimdiye kadarki onlu değer = 80 10 Şimdi, 87 yi toplamak için yapmamız gereken 1 ler basamağındaki "7" kodudur: 1 2 7 - - - Şimdiye kadarki onlu değer = 87 10 (onlu gösterimde) Eğer son bölümde sekizli/ikili dönüşümlere dikkat ettiyseniz, daha önce 1010111 2 olarak tanımladığımız 87 10 (onlu) nun ikili gösterimini alabileceğimizi fark edeceksiniz ve çalışmamızı kontrol etmek için kolaylıkla sekizliye dönüştüreceksiniz: Sıfırları kapsar 001 010 111 İkili --- --- --- 1 2 7 Sekizli Cevap: 1010111 2 = 127 8 Aynı yolla onlu tabandan onaltılı tabana dönüşüm yapabilir miyiz? Elbette, fakat kim ister ki? Bu yöntemin anlaşılması kolaydır fakat uygulaması yorucudur Bu dönüşümleri yapmak için aslında benzer ve daha kolay (matematiksel olarak) başka bir yol daha vardır Bu yöntem ikili, sekizli yada onaltılı basamak-katsayı değerlerini onlu sayılandırma çarpanlarına ayırmak için tekrarlayan bölme döngüleri (onlu gösterimi kullanarak) kullanır Bölümün ilk
döngüsünde, orjinal onlu sayıyı alırız ve dönüştürdüğümüz sayılandırma sisteminin tabanına böleriz (ikili=2, sekizli=8, onaltılı=16) Ardından bölme sonucunun (bölüm) tam-sayı kısmını alırız ve taban değerine tekrar böleriz ve bu şekilde 1 den daha küçük bölüm değerine ulaştığımız da sonlandırırız İkili, sekizli yada onaltılı rakamlar her bir bölüm basamağının sol üst tarafında "kalan" olarak tanımlanmıştır İkili için bunun nasıl çalıştığına 87 10 onlu örneği ile bakalım: 87 87 2 ye bölündüğünde bölüm 435 elde edilir --- = 435 Bölümde "kalan" = 1 dir, yada bölümün < 1 kısmı 2 çarpı bölendir (05 x 2) 43 435 in tam-sayı kısmını alın (43) --- = 215 ve 215 elde etmek için 2 ye bölüm, yada 1 in kalanı 2 ile 21 21 Vesaire kalan = 1 (05 x 2) --- = 105 2 10 Vesaire kalan = 0 --- = 50 2 5 Vesaire kalan = 1 (05 x 2) --- = 25 2 2 Vesaire kalan = 0 --- = 10 2 1 bölümü 1 den daha az kalan elde --- = 05 edene kadar = 1 (05 x 2) 2 İkili bit ler LSB den başlayıp MSB ye doğru devam ederek ilerleyen bölme basamaklarının kalanlarından elde edilmiştir Bu kısımda In this case, 1010111 2 in ikili gösterimine ulaşıyoruz 2 ye böldüğümüzde daima "0" yada "5" ile biten bir bölüm elde edeceğiz, örneğin 0 yada 1 kalanı Daha önce söylendiği gibi bu tekrar-bölerek dönüştürme tekniği ikiliden farklı sayılandırma sistemleri için çalışacaktır Sekizliye dönüştürmek için 8 gibi farklı sayı kullanarak ardışık bölme işlemi gerçekleştirseydik muhakkak 0 ve 7 arasında kalanlar elde edecektik Bunu aynı onlu sayı 87 10 ile deniyelim: 87 10875 bölüm elde etmek için 87 yi 8 e bölün --- = 10875 Bölümde "kalan" = 7 dir, yada bölümün < 1 kısmı 8 çarpı bölendir (875 x 8) 10 --- = 125 Kalan = 2 8 1 --- = 0125 Bölüm 1 den küçüktür, bu nedenle burada duracağız 8 Kalan = 1 SONUÇ: 87 10 = 127 8
1 den küçük büyüklükler ile sayılandırma sistemleri dönüşümü için benzer bir teknik kullanabiliriz İkili, sekizli yada onaltılıya 1 den küçük onlu bir sayı dönüştürürken, dönüştürdüğümüz sayıdan sonraki rakam gibi her bir basamaktaki çarpımın tamsayı kısmını alarak tekrarlayan çarpmayı kullanırız İkiliye dönüştürmek için 08125 10 onlu sayısını örnek olarak kullanalım: 08125 x 2 = 1625 Çarpımın tamsayı kısmı = 1 0625 x 2 = 125 Çarpımın < 1 kısmını alın ve tekrar çarpın Çarpımın tamsayı kısmı = 1 025 x 2 = 05 Çarpımın tamsayı kısmı = 0 05 x 2 = 10 Çarpımın tamsayı kısmı = 1 Çarpım katıksız bir tamsayı olduğunda durun (0 ile biter) SONUÇ: 08125 10 = 01101 2 Tamsayıların tekrar-bölme işlemindeki gibi her bir basamak bize "nokta" dan uzakta sonraki rakamı (yada bit) verir Tamsayı ile (bölme), LSB den MSB ye çalıştık (sağ-dan-sola), fakat tekrarlayan çarpma ile, soldan sağa çalıştık < 1 bileşeni ile 1 den büyük bir onlu sayı dönüştürmek için her iki tekniği bir kerede kullanmalıyız İkiliye dönüştürmek için 5440625 10 onlu örneğini seçelim: TAMSAYI KISMI İÇİN TEKRARLANAN BÖLME: 54 --- = 270 Kalan = 0 2 27 --- = 135 Kalan = 1 (05 x 2) 2 13 --- = 65 Kalan = 1 (05 x 2) 2 6 --- = 30 Kalan = 0 2 3 --- = 15 Kalan = 1 (05 x 2) 2 1 --- = 05 Kalan = 1 (05 x 2) 2 KISMİ CEVAP: 54 10 = 110110 2 < 1 KISMI İÇİN TEKRARLANAN ÇARPIM: 040625 x 2 = 08125 Çarpımın tamsayı kısmı = 0 08125 x 2 = 1625 Çarpımın tamsayı kısmı = 1 0625 x 2 = 125 Çarpımın tamsayı kısmı = 1
025 x 2 = 05 Çarpımın tamsayı kısmı = 0 05 x 2 = 10 Çarpımın tamsayı kısmı = 1 KISMİ CEVAP: 040625 10 = 001101 2 TAM CEVAP: 54 10 + 040625 10 = 5440625 10 110110 2 + 001101 2 = 11011001101 2