← Computers & Automation

Forum

İkili Aritmetik

Binary Arithmetic

J
J. B. McCall
Winnipeg, Kanada · 1954 · Computers and Automation

Bana öyle geliyor ki bazı okuyucularınız, birçok otomatik dijital bilgisayarda önemli olduğu ve çoğu matematik eserinde tam olarak açıklanmadığı veya örneklendirilmediği için ikili aritmetikle ilgilenebilirler. Sonuçta, otomatik bilgisayarlara giriş yapan herkesin ikili aritmetik ile kendini rahat hissetmeyi öğrenmesi gerekir.

İkili sayı sistemi veya ikili gösterim (binary notation), sayıların alışılmış ondalık (decimal) gösterimdeki on tabanı yerine iki tabanına göre ifade edildiği bir sistemdir. Yani, ikili sistemdeki "10" sembolü iki, "11" üç, "100" dört anlamına gelir ve bu şekilde devam eder. Herhangi bir sayıyı ifade etmek için yalnızca iki farklı rakam gerekir; bunlar sıfır anlamına gelen "0" ve bir anlamına gelen "1"dir. Rakamların konumları on yerine ikinin kuvvetlerini belirtir.

Hesaplama makineleri uygulamaları için ikili sistem birçok avantaj sunar. İki kararlı (stable) duruma sahip herhangi bir mekanik veya elektrikli cihaz, bir ikili rakamı temsil etmek için kullanılabilir. İkili rakamları temsil etmek için kullanılan bazı cihazlar: anahtarlar, röleler, vakum tüpleri, elektrik lambaları, eksantrik milleri (cam shafts). Örneğin bir elektrik lambası ile, yanan bir lamba "1"i, sönük bir lamba ise "0"ı temsil edebilir.

Ancak ikili gösterimin kullanımı sadece makinelerle sınırlı değildir. Bu sistemde sıradan kağıt-kalem aritmetiği yapmak da gayet mümkündür. Bunu yapabilmek için sadece bir toplama tablosuna ve bir çarpma tablosuna ihtiyacımız var:

Toplama Tablosu (+)

+ 0 1
0 0 1
1 1 10

Çarpma Tablosu (×)

× 0 1
0 0 0
1 0 1

Bu tabloların ne kadar basit olduğuna dikkat ediniz. Ondalık gösterimde ilgili tabloların her biri 100 girdi içerir ve her çocuk okul hayatının birkaç yüz saatini bunları ezberlemekle geçirir; oysa ikili gösterim tabloları herhangi bir çocuk tarafından çok kısa sürede öğrenilebilir. Leibniz, ikili sistemin ondalık gösterime üstünlüğünden o kadar etkilenmişti ki, evrensel kullanımını savunmuştu.

"e" Sabitinin İkili Hesaplanması

İkili gösterimin kullanımına bir örnek olarak, iyi bilinen matematiksel "e" sabitinin değerini ikili sistemde hesaplayalım. "e", n sınırsız olarak artarken aşağıdaki serinin toplamının limiti olarak tanımlanır:

Seri Tanımı
e = 1 + 1/1! + 1/2! + 1/3! + 1/4! + 1/5! + ··· + 1/n!

İkili gösterimde "e" için karşılık gelen ifade:

İkili Seri
e = 1 + 1 + 1/10! + 1/11! + 1/100! + ···

İlk iki terimin her ikisi de 1'dir. Üçüncü terim, ikincinin (ikili) 10'a bölünmesiyle elde edilir; bu işlem bölünenin bir basamak sağa kaydırılmasıyla yapılır, dolayısıyla terim 0.1'dir.

Dördüncü terim, son terimin 11'e bölünmesiyle elde edilir. İkili aritmetiğin işleyişini göstermek için bunu ayrıntılı olarak yapalım:

İkili Uzun Bölme

Bölen (11), kısmi kalandan büyük → bölüme 0:

       0.
11 ) 0.1

       0.0
11 ) 0.10

Bölen (11) artık kısmi kalandan (100) küçük → bölüme 1:

       0.001
11 ) 0.100
     11
     ──
     10

Devam → Bölen eşit, bölüme 0, sonra 1:

       0.001 01
11 ) 0.100 000
     11
     ──
     100
      11
      ──
      10

Bölümün tekrarlanacağı açıktır.

Böylece dördüncü terim için nihai sonuç:

0.001 010 101 010 101 010 101  ···

Beşinci terim, yukarıdaki sonucun 100'e bölünmesiyle (tüm rakamları iki hane sağa kaydırmak) elde edilir. Altıncı terim ise 101'e bölünmeyi gerektirir:

         0.000 000 100 010 001 000 100 010 001
101 ) 0.000 010 101 010 101 010 101 010 101
             000 010
             ───
               1 01
               1 01
               ────
                  0 101  vb.

Eğer bölen kısmi çarpımdan daha büyükse bölüme bir 0 koyarız; eğer eşit veya daha küçükse bir 1 koyarız. Ondalık uzun bölmeye kıyasla ikili uzun bölme işleminin ne kadar basit olduğu fark edilecektir.

Seri Terimlerinin Toplanması

Geri kalan terimler için bölme ayrıntıları yazılmayacaktır. Elde edilen tüm bölümler şunlardır:

Terim  1 → 1.0
Terim  2 → 1.0
Terim  3 → 0.1
Terim  4 → 0.001 010 101 010 101 010 101 010 101 010 101 010 101
Terim  5 → 0.000 010 101 010 101 010 101 010 101 010 101 010 101
Terim  6 → 0.000 000 100 010 001 000 100 010 001 000 100 010 001
Terim  7 → 0.000 000 000 101 101 100 000 101 101 100 000 101 101
Terim  8 → 0.000 000 000 000 110 100 000 000 110 100 000 000 110
Terim  9 → 0.000 000 000 000 000 110 100 000 000 110 100 000 000
Terim 10 → 0.000 000 000 000 000 000 101 110 001 110 111 100 011
Terim 11 → 0.000 000 000 000 000 000 000 100 100 111 111 001 001
Terim 12 → 0.000 000 000 000 000 000 000 000 011 010 111 001 100
Terim 13 → 0.000 000 000 000 000 000 000 000 000 010 001 111 011
Terim 14 → 0.000 000 000 000 000 000 000 000 000 000 001 011 000
Terim 15 → 0.000 000 000 000 000 000 000 000 000 000 000 000 110

Terimlerin toplamını elde etmek için bunları toplamamız gerekiyor. İkili aritmetikte toplama işlemi yapmak kolaydır: sağdaki sütundan başlayarak her bir sütundan aşağıya inin, 1'leri çiftler halinde sadeleştirin. Sadeleştirilen her çift için, bir sol taraftaki sütuna bir 1 ekleyin.

Tablo A — İkili Toplama ve Eldeler

.001 010 101 010 101 010 101 010 101 010 101 010 101
.000 010 101 010 101 010 101 010 101 010 101 010 101
.000 000 100 010 001 000 100 010 001 000 100 010 001
.000 000 000 101 101 100 000 101 101 100 000 101 101
.000 000 000 000 110 100 000 000 110 100 000 000 110
.000 000 000 000 000 110 100 000 000 110 100 000 000
.000 000 000 000 000 000 101 110 001 110 111 100 011
.000 000 000 000 000 000 000 100 100 111 111 001 001
.000 000 000 000 000 000 000 000 011 010 111 001 100
.000 000 000 000 000 000 000 000 000 010 001 111 011
.000 000 000 000 000 000 000 000 000 000 001 011 000
.000 000 000 000 000 000 000 000 000 000 000 000 110
·······101·011·111·111·111·111·111·111·111·111·111·11·  ← eldeler
        111 111 1 11 111 111 111 111 111 11 111 11 1 1 111 111 111 11
        1 11 1 1 11 111
        11 1 1 1
──────────────────────────────────────────────────────
10.101 101 111 110 000 101 010 001 011 000 100 111 111

Noktalı çizginin altındaki 1'ler, her durumda bir önceki sütundaki bir çift 1'in sadeleştirilmesinden kaynaklanan eldelerdir (carries). Son 8 basamağı, kullanılmayan terimlerden gelecek eldeler nedeniyle değişebileceğinden, "e" değerimiz olarak yalnızca ilk 34 basamağını kabul ediyoruz:

Sonuç — İkili Gösterimde "e"
e = 10.101 101 111 110 000 101 010 001 011 000 1

Ondalık Doğrulama

Sonucun doğruluğunu kontrol etmek için, n. ikili basamaktaki bir 1'in ondalık sistemde (1/2)n'ye eşdeğer olduğunu not etmemiz yeterlidir:

Ondalık Karşılıkların Toplamı
2.5 .125 .062 5 .015 625 .007 812 5 .003 906 25 .001 953 125 .000 976 562 5 488 281 25 015 258 789 003 814 697 000 953 674 059 604 014 901 007 450 000 465 058 29 14 7 3 1 ───────────────── 2.718 281 828 4 ···
Doğrulama
e = 2.718 281 828 4 ···
ki bu da "e"nin iyi bilinen değeridir. ✓

Sonuç

Bu tartışma ikili gösterimin şu özelliklerini örneklemiş olacaktır:

Birincisi, aritmetiğin temel işlemleri çok kolaylaşır. Toplama ve çarpma işlemleri için uzun tablolar hatırlamamıza gerek yoktur. Bölme işleminde ise deneme bölenlerine ve çarpma işlemlerine gerek kalmaz.

İkincisi, buna karşılık, basit bir hesaplama için ne kadar alana ihtiyaç duyulduğunu fark ediyoruz. "e" için nihai ifademiz 34 anlamlı (significant) rakam gerektirirken, ondalık karşılığının sadece 11 rakama ihtiyacı vardır.

İnsanlar, insan zihninin iki adet 10×10'luk tabloyu oldukça kolay taşıyabilmesi nedeniyle ikili yerine ondalık sistemi tercih ederler. Fakat makineler genellikle ondalık yerine ikili sistemi kullanmayı tercih ederler, çünkü böyle basit toplama ve çarpma tablolarına sahip olmak kablolamayı büyük ölçüde basitleştirir ve o kadar hızlı çalışırlar ki, 11 yerine 34 rakam kullanmanın gerekliliği onlar için hiçbir şey ifade etmez.