Binary Kesirler / İkili Kesirler

Binary Kesirler / İkili Kesirler ikili kesirler,binary kesirler
Sayı Sistemleri Serisi
İkili Sayı Sistemiİşaretli İkili Sayılarİkili Kesirler
İkili – Onluk Dönüşümüİkili Kodlanmış Onluk Sayılar (BCD)
On Altılı Sayı SistemiSekizli Sayı Sistemi

İkili kesirler, her bir ikili basamağın “taban-2” numaralandırma sistemini kullanması dışında, ondalık (taban-10) sistemdeki kesirli sayılarla tamamen aynı ağırlıklandırma prensibini kullanır.

Ondalık sayıların, her bir basamağında 0 ile 9 arasında (on olası değerden birini) değer alabilen “taban-10” numaralandırma sistemini kullandığını biliyoruz.

İkili Kesirler
İkili Kesirler

Ondalık bir sayının tam kısmında soldan sağa doğru hareket ettiğimizde, her hane sağındaki haneye göre on kat daha büyük bir değere sahip olur.

Aynı şekilde sağdan sola doğru hareket ederken her bir rakam bir önceki rakamdan on kat daha büyüktür. Ters yönde, yani soldan sağa doğru ilerlediğimizde ise her basamak komşu basamağından on kat daha küçük bir değere sahip olacaktır.

Örnek olarak şu sayıyı inceleyelim: 1234.567_{10}

Bu ondalık sayı örneğinde, ondalık noktasının (veya virgülün) hemen sağındaki ilk rakam (5 rakamı), noktanın hemen solundaki birler basamağının onda biri (\frac{1}{10} veya 0.1) değerindedir. Ondalık noktadan sonra sağa doğru ilerledikçe basamak ağırlıkları \frac{1}{10}, \frac{1}{100}, \frac{1}{1000} şeklinde üstel olarak küçülerek devam eder.

Kısacası bir sayı içinde soldan sağa doğru hareket ettikçe, birbirini izleyen her basamak, solundaki basamağın onda biri (1/10) ağırlığına sahip olacaktır.

Ondalık numaralandırma sistemi konumsal bir gösterim üretir. Yani her basamağın temsil ettiği büyüklük (ağırlık), o rakamın sayı dizisi içinde bulunduğu konuma doğrudan bağlıdır.

Matematiksel olarak standart ondalık sistemde, noktanın solundaki (tam kısımdaki) basamak ağırlıkları genellikle 10^0, 10^1, 10^2, 10^3 vb. 10’un pozitif kuvvetleri şeklinde yazılır.

Benzer şekilde, kesirli kısımlar için ondalık noktanın sağındaki pozisyonların ağırlığı 10’un negatif kuvvetleri olarak giderek küçülür: 10^{-1}, 10^{-2}, 10^{-3} vb.

Böylece, sayı sistemlerindeki her bir basamağın, bulunduğu konuma göre kendi ağırlığını taşıdığını net bir şekilde görebiliriz.

Herhangi bir ondalık sayının değeri, basamaklarındaki rakamların kendi konum ağırlıkları ile çarpımlarının toplamına eşittir. Bu nedenle yukarıdaki örneğimizdeki N = 1234.567_{10} sayısı ondalık biçimde şu şekilde açılabilir:

1000 + 200 + 30 + 4 + 0.5 + 0.06 + 0.007 = 1234.567_{10}

Veya her bir basamağın ağırlığını yansıtacak şekilde çarpanlarla şu şekilde de yazılabilir:

(1 \times 1000) + (2 \times 100) + (3 \times 10) + (4 \times 1) + (5 \times 0.1) + (6 \times 0.01) + (7 \times 0.001) = 1234.567_{10}

Bu yapıyı standart bir matematiksel polinom şeklinde göstermek istersek:

(1 \times 10^3) + (2 \times 10^2) + (3 \times 10^1) + (4 \times 10^0) + (5 \times 10^{-1}) + (6 \times 10^{-2}) + (7 \times 10^{-3}) = 1234.567_{10}

Aynı “konumsal ağırlık” gösterimi fikrini, her basamağın yer aldığı konuma bağlı olarak farklı bir değere sahip olduğu ikili (binary) sayı sisteminde de uygulayabiliriz.

Buradaki tek fark, ikili sayı sisteminin tabanının 10 yerine 2 olmasıdır. Bu yüzden basamakların ağırlıkları taban-10 yerine taban-2’nin kuvvetleri şeklinde hesaplanır.

İkili (Binary) Kesirler

İkili numaralandırma sistemi, sadece “0” ve “1” olmak üzere iki farklı dijital rakamdan (bit) oluşan taban-2 bir sistemdir.

Bir ikili sayının her bir basamağı (biti), sayının içindeki konumuna göre kendi ikili ağırlığını taşır.

Aynı şekilde, “1” değerinden daha düşük büyüklükler için negatif ikili kuvvetler kullanarak (ikili noktadan sonra) işaretsiz kesirli ikili sayılar elde edebiliriz.

Ondalık kesirlere çok benzer şekilde, ikili kesirler de tam sayı ile kesir arasını belirten bir “ikili nokta” (binary point) kullanılarak gösterilir.

İkili noktanın sağında kalan tüm kesirli basamaklar negatif kuvvete sahip ikili ağırlıkları (2^{-n}) temsil eder.

Başka bir deyişle, noktanın sağında 2’nin üssü negatiftir.

İkili noktanın sağındaki kesirli ikili sayılar için her basamağın ağırlığı sağa doğru gidildikçe yarı yarıya küçülür: 2^{-1}, 2^{-2}, 2^{-3}, 2^{-4} vb.

  • 2^0 = 1
  • 2^{-1} = \frac{1}{2^1} = \frac{1}{2} = 0.5
  • 2^{-2} = \frac{1}{2^2} = \frac{1}{4} = 0.25
  • 2^{-3} = \frac{1}{2^3} = \frac{1}{8} = 0.125 şeklinde devam eder.

Böylece örneğin 0.1011_2 ikili kesrini incelediğimizde, her bitin pozisyon ağırlığını ondalık sistemde hesaplayarak toplam değere ulaşabiliriz:

0.1011_2 = (1 \times 2^{-1}) + (0 \times 2^{-2}) + (1 \times 2^{-3}) + (1 \times 2^{-4})

= 0.5 + 0 + 0.125 + 0.0625 = 0.6875_{10}

İkili Kesir Dönüşüm Örneği – 1

Şimdi elimizde hem tam hem de kesirli kısmı olan şu ikili sayının bulunduğunu varsayalım: 1101.0111_2. Bu sayının ondalık sayı eşdeğeri ne olacaktır?

Her biti kendi ağırlığı ile çarparak polinom açılımını yazalım:

1101.0111_2 = (1 \times 2^3) + (1 \times 2^2) + (0 \times 2^1) + (1 \times 2^0) \ + \ (0 \times 2^{-1}) + (1 \times 2^{-2}) + (1 \times 2^{-3}) + (1 \times 2^{-4})

= 8 + 4 + 0 + 1 \ + \ 0 + \frac{1}{4} + \frac{1}{8} + \frac{1}{16}

= 13 \ + \ 0 + 0.25 + 0.125 + 0.0625 = 13.4375_{10}

Sonuç olarak 1101.0111_2 ikili sayısının ondalık eşdeğeri 13.4375_{10} olarak bulunur.

Farklı İkili Kesir Örnekleri:

  • 0.11_2 = (1 \times 2^{-1}) + (1 \times 2^{-2}) = 0.5 + 0.25 = 0.75_{10}
  • 11.001_2 = (1 \times 2^1) + (1 \times 2^0) + (1 \times 2^{-3}) = 2 + 1 + 0.125 = 3.125_{10}
  • 1011.111_2 = (1 \times 2^3) + (1 \times 2^1) + (1 \times 2^0) + (1 \times 2^{-1}) + (1 \times 2^{-2}) + (1 \times 2^{-3}) = 8 + 2 + 1 + 0.5 + 0.25 + 0.125 = 11.875_{10}

Ondalık Kesirleri İkili (Binary) Kesirlere Dönüştürme

Ondalık (decimal) bir kesrin ikili bir kesre dönüştürülmesi, tam sayılar için kullandığımız sürekli bölme yöntemine biraz benzer. Ancak burada bölme yerine, ondalık kesri elde sıfırlanana kadar sürekli 2 ile çarpma yöntemini kullanacağız.

Bir ondalık sayıyı ikiliye dönüştürürken, sayının tam kısmı (noktanın solu) ile kesirli kısmı (noktanın sağı) her zaman ayrı ayrı hesaplanır.

Tam sayı kısmı için, ondalık değeri bölüm 0 olana kadar sürekli 2‘ye (/ 2) böleriz. Elde edilen kalanlar (remainders) aşağıdan yukarıya doğru (veya tersten okunarak) tam kısmın ikili eşdeğerini verir (Sürekli Bölme Yöntemi).

Adım 1: Tam Kısmın Dönüşümü (Örn: 118_{10})

118_{10} ondalık sayısının ikili eşdeğerini bulalım:

  • 118 / 2 = 59 (Kalan 0 – LSB)
  • 59 / 2 = 29 (Kalan 1)
  • 29 / 2 = 14 (Kalan 1)
  • 14 / 2 = 7 (Kalan 0)
  • 7 / 2 = 3 (Kalan 1)
  • 3 / 2 = 1 (Kalan 1)
  • 1 / 2 = 0 (Kalan 1 – MSB)

Kalanları aşağıdan yukarıya doğru okuduğumuzda 118_{10} sayısının ikili eşdeğerini 1110110_2 olarak buluruz.

Adım 2: Kesirli Kısmın Dönüşümü (Sürekli Çarpım)

Kesirli kısım için ise ondalık değeri (örneğin 0.8125) sürekli olarak 2 ile çarparız. Her çarpım sonucunda elde edilen sayının tam kısmı ikili kesrimizin yeni bir biti olur. Çarpım işlemi kesirli kısım 0 olana kadar devam eder.

Önemli Kural: Çarpım sonucu 1.xx çıkarsa yeni bit 1‘dir ve bir sonraki çarpmaya sadece .xx (kesirli) kısmı dahil edilir. Çarpım sonucu 0.xx çıkarsa yeni bit 0‘dır.

0.8125_{10} ondalık kesrinin ikili eşdeğerini bulalım:

  • 0.8125 \times 2 = \mathbf{1}.625 (Tam kısım 1 – İkili kesrin ilk biti / MSB)
  • 0.625 \times 2 = \mathbf{1}.250 (Tam kısım 1)
  • 0.250 \times 2 = \mathbf{0}.500 (Tam kısım 0)
  • 0.500 \times 2 = \mathbf{1}.000 (Tam kısım 1 – Kesir 0.000 olduğu için işlem biter / LSB)

Burada bitleri yukarıdan aşağıya (baştan sona) doğru yazarız. Dolayısıyla 0.8125_{10} kesrinin ikili eşdeğeri 0.1101_2‘dir.

Doğrulamak için: 0.1101_2 = 0.5 + 0.25 + 0.0625 = 0.8125_{10} (Sonuç doğru).

Not: Bazı ondalık kesirler 2 ile ne kadar çarpılırsa çarpılsın asla sıfıra ulaşmaz. Bu durumlarda kesirli sayı sonsuz bir uzunluğa sahiptir (devreden ikili sayı). Bu tür durumlarda hesaplama istenilen hassasiyet derecesine (örneğin 8-bit veya 16-bit çözünürlük) ulaşıldığında durdurulur.

İkili Kesir Dönüşüm Örneği – 2

Aşağıdaki tam ve kesirli kısmı olan ondalık sayının ikili eşdeğerini bulunuz: 54.6875_{10}

İlk olarak, tam sayı kısmı olan 54‘ü sürekli bölme yöntemiyle dönüştürürüz:

  • 54 / 2 = 27 (Kalan 0)
  • 27 / 2 = 13 (Kalan 1)
  • 13 / 2 = 6 (Kalan 1)
  • 6 / 2 = 3 (Kalan 0)
  • 3 / 2 = 1 (Kalan 1)
  • 1 / 2 = 0 (Kalan 1)

Kalanları aşağıdan yukarıya okuduğumuzda 54_{10} = <strong>110110_2</strong> sonucuna ulaşırız. <!-- /wp:paragraph -->  <!-- wp:paragraph --> Şimdi, kesirli kısım olan0.6875'i <em>sürekli çarpım</em> yöntemiyle ikili forma dönüştürürüz: <!-- /wp:paragraph -->  <!-- wp:list --> <ul class="wp-block-list"><!-- wp:list-item --> <li>0.6875 \times 2 = \mathbf{1}.375(Yeni bit: <strong>1</strong>)</li> <!-- /wp:list-item -->  <!-- wp:list-item --> <li>0.375 \times 2 = \mathbf{0}.750(Yeni bit: <strong>0</strong>)</li> <!-- /wp:list-item -->  <!-- wp:list-item --> <li>0.750 \times 2 = \mathbf{1}.500(Yeni bit: <strong>1</strong>)</li> <!-- /wp:list-item -->  <!-- wp:list-item --> <li>0.500 \times 2 = \mathbf{1}.000(Yeni bit: <strong>1</strong>, Kesir sıfırlandı, işlem bitti.)</li> <!-- /wp:list-item --></ul> <!-- /wp:list -->  <!-- wp:paragraph --> Bitleri yukarıdan aşağıya okuduğumuzda0.6875_{10} = 0.1011_2 sonucunu buluruz.

İki parçayı birleştirirsek, ondalık 54.6875_{10} sayısının İkili (Binary) eşdeğerinin 110110.1011_2 olduğunu görürüz.

Özetle

Bu eğitimde ondalık kesirleri eşdeğer ikili kesirlere nasıl dönüştüreceğimizi öğrendik. Bunun için sayının sadece kesirli kısmını sürekli 2 ile çarpmamız ve her çarpım sonucunda tam sayı kısmında oluşan (0 veya 1) bitleri yukarıdan aşağıya doğru not etmemiz gerekir.

Bu bit çıkarma işlemi kesir tam olarak sıfırlanıncaya kadar (örneğin .000 kalana dek) ya da sonsuz tekrar eden kesirler için tasarımımızın izin verdiği bit genişliği (çözünürlük) kadar devam eder.

Bir ondalık sayının tam kısmı her zaman sonlu bir ikili sayı dizisine dönüştürülebilir. Ancak ondalık kesirlerin ikili sistemde her zaman tam ve sonlu bir karşılığı olmayabilir. Bu durum, ondalık kesirleri ikili sisteme dönüştürdüğümüzde bilgisayar programlarında yuvarlama hatalarına veya veri kayıplarına (floating-point precision errors) neden olabilir.

Sayı Sistemleri Serisi
İkili Sayı Sistemiİşaretli İkili Sayılarİkili Kesirler
İkili – Onluk Dönüşümüİkili Kodlanmış Onluk Sayılar (BCD)
On Altılı Sayı SistemiSekizli Sayı Sistemi

Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.