Farklı sayı sistemlerinde aritmetik işlemler
Konumsal sayı sistemlerinde aritmetik işlemler, alışık olduğumuz onluk sisteme benzer ilkelerle gerçekleştirilir; ancak sistemin tabanı ($N$) dikkate alınır. Toplama işleminde, basamaklardaki rakamların toplamı $N$ değerine ulaştığında bir sonraki basamağa taşıma yapılır. Çıkarma işleminde ise üst basamaktan alınan bir birim, alt basamakta $N$ birime eşittir. Çarpma işlemi, kaydırma ile birlikte kısmi çarpımların ardışık toplanması yoluyla uygulanır. Bu kuralların anlaşılması, programlama, ağ protokolleriyle çalışma ve bilgisayar mimarisi açısından son derece önemlidir.
Temel kural: Tüm konumsal sistemlerde işlem algoritması onluk sistemdekiyle aynıdır. Değişen tek şey, taşıma veya borç alma "eşiğidir"; bu eşik, sayı sisteminin tabanına eşittir.
Makale 3000 karakterden uzunsa, ilk H2 başlığından önce otomatik olarak aşağıdaki bölümü ekleyin:
İçindekiler
Temel ilkeler
$N$ tabanlı konumsal bir sayı sisteminde $0$ ile $N-1$ arasındaki rakamlar kullanılır. Bir rakamın ağırlığı, bulunduğu basamağa (konuma) bağlıdır ve $N^k$ olarak hesaplanır; burada $k$, basamak numarasıdır (sağdan sola doğru 0'dan başlayarak).
Aritmetik işlemler yapılırken şunlar hatırlanmalıdır:
- Taşıma (Carry): Mevcut basamaktaki işlemin sonucu $\ge N$ ise, fazlalık $N$'ye bölünür. Tam kısım bir sonraki basamağa taşınır, kalan mevcut basamakta kalır.
- Borç alma (Borrow): Mevcut basamakta eksilen çıkanlandan küçükse, üst basamaktan bir birim borç alınır. Bu birim, mevcut basamakta $N$ değerine eşittir.
Farklı sistemlerde toplama
Toplama algoritması herhangi bir sistem için aynıdır: Önceki adımdan gelen taşımayı dikkate alarak, basamaklardaki rakamları sağdan sola doğru toplarız.
İkili sistem (taban 2)
0 ve 1 rakamları kullanılır. Tek basamaklı sayıların toplama kuralları:
- $0 + 0 = 0$
- $0 + 1 = 1$
- $1 + 0 = 1$
- $1 + 1 = 10_2$ (0 yazılır, 1 taşınır)
- $1 + 1 + 1 = 11_2$ (1 yazılır, 1 taşınır)
Örnek: $1011_2 + 1101_2$
1011
+ 1101
------
11000
Açıklama:
- $1+1=10$ → 0 yazılır, taşıma 1.
- $1+0+1(\text{taşıma})=10$ → 0 yazılır, taşıma 1.
- $0+1+1(\text{taşıma})=10$ → 0 yazılır, taşıma 1.
- $1+1+1(\text{taşıma})=11$ → 11 yazılır. Sonuç: $11000_2$ (bu da $24_{10}$ değerine eşittir).
Onaltılı sistem (taban 16)
$0-9$ rakamları ve $A-F$ harfleri kullanılır ($A=10, B=11, ..., F=15$). Toplam $\ge 16$ olduğunda taşıma oluşur.
Örnek: $A3_{16} + 1F_{16}$
- Alt basamak: $3 + F (15) = 18$. $18 / 16 = 1$ (kalan 2). 2 yazılır, taşıma 1.
- Üst basamak: $A (10) + 1 + 1 (\text{taşıma}) = 12$. Onaltılı sistemde 12, C harfidir. Sonuç: $C2_{16}$.
Onaltılı sistemde hızlıca toplamak için rakamları zihinden onluğa çevirip işlemi yaptıktan sonra sonucu tekrar onaltılıya döndürebilirsiniz. Örneğin, $D (13) + 5 = 18 \rightarrow 12_{16}$.
Çıkarma ve tümleyen yöntemi
Klasik sütunlu çıkarma
Bir basamakta birim yetersiz kaldığında üst basamaktan borç alınır. Alınan birim, mevcut basamakta $N$ birime dönüşür.
Sekizli sistemde örnek (taban 8): $52_8 - 17_8$
- Alt basamak: $2 - 7$ yapılamaz. 5'ten borç alınır. $2 + 8 = 10$. Şimdi $10 - 7 = 3$. Üst basamakta 5 vardı, 4 oldu.
- Üst basamak: $4 - 1 = 3$. Sonuç: $33_8$.
Tümleyen ile çıkarma (bilgisayarlar için)
Dijital elektronikte çıkarma işlemi genellikle iki'nin tümleyeni (Two's Complement) kullanılarak toplama ile değiştirilir. Bu sayede her iki işlem için de aynı toplayıcı devresi kullanılabilir. $A - B$ işlemini hesaplama algoritması:
- $B$ sayısının tüm bitlerini ters çevirin.
- Ters çevirme sonucuna 1 ekleyin.
- Elde edilen sayıyı $A$ ile toplayın.
- En üst basamaktan gelen taşımayı (varsa) atın.
Sütun halinde çarpma
Çarpma işlemi, çarpanın her basamağını çarpılanla çarpmayı, sonuçları sola kaydırmayı ve ardından bunları toplamayı içerir.
İkili çarpma
Çarpma tablosu basit olduğu için bu en kolay çarpma türüdür:
- $0 \cdot 0 = 0$
- $0 \cdot 1 = 0$
- $1 \cdot 0 = 0$
- $1 \cdot 1 = 1$
Aslında 1 ile çarpmak çarpılanı kopyalamak, 0 ile çarpmak ise sıfır yazmak anlamına gelir. Sonuçlar kaydırılarak toplanır.
Örnek: $101_2 \times 11_2$ ($5 \times 3 = 15$)
101
x 11
-----
101 (101 * 1)
1010 (101 * 1, 1 basamak sola kaydırma)
-----
1111
Sonuç $1111_2$, $15_{10}$ değerine eşittir.
Büyük tabanlı sistemlerde çarpmanın özellikleri
Tabanı 10'dan büyük olan sistemlerde (örneğin 16) hazır bir çarpma tablosu yoksa, ara hesaplamalar için onluk sisteme geçiş yapmak uygundur.
Örnek: $2_{16} \times A_{16}$ Çevirme: $2 \times 10 = 20$. Tekrar onaltılıya çevirme: $20 = 1 \cdot 16 + 4 \rightarrow 14_{16}$.
Yaygın hatalar
- Taşımada tabanı unutmak. En yaygın hata, ikili veya sekizli sistemde bile toplam 10 olduğunda bir taşımaktır. İkili sistemde toplam 2 olduğunda zaten taşıma gerekir.
- Yanlış borç alma. Sekizli sistemde çıkarma yaparken alınan birim 8 verir, 10 değil. Onaltılı sistemde ise 16 verir.
- Onaltılı sistemde harf karmaşası. Harflerin toplanmasında (örneğin $A+A$) hatalar oluşur. Her zaman onluk sistemde hızlı bir kontrol yapmanız önerilir: $10+10=20$, $20-16=4$, taşıma 1. Sonuç: $14_{16}$.
- Çarpma sırasında kaydırmayı unutmak. Kısmi çarpımları toplarken basamakları doğru hizalamak önemlidir. Her bir sonraki kısmi çarpım bir pozisyon sola kaydırılır.
SSS
Taşıma ile borç alma arasındaki fark nedir? Taşıma, bir basamaktaki değer sistemin tabanını aştığında toplama ve çarpma işlemlerinde kullanılır. Borç alma ise, eksilenin değeri çıkanandan küçük olduğunda çıkarma işleminde kullanılır.
İkili sistemde sütunlu bölme yapılabilir mi? Evet, uzun bölme algoritması onluk sisteme benzer. Ancak ikili sistemde her adımda sadece bölenin, bölünenin mevcut kısmına sığıp sığmadığını belirlemek gerekir (cevap ya 0 ya da 1 olur), bu da süreci oldukça standart hale getirir.
Bilgisayarlarda çıkarma için neden iki'nin tümleyeni kullanılır? Bu, işlemci mimarisini basitleştirir. Ayrı bir çıkarma birimi oluşturmak yerine, aynı toplama birimi (ALU) kullanılır; bu da transistörlerden tasarruf sağlar ve hızı artırır.
Farklı bir sistemdeki hesaplamaların doğruluğunu hızlıca nasıl kontrol edebilirim? Girdiğiniz sayıları onluk sisteme çevirin, işlemi orada gerçekleştirin ve sonucu tekrar özgün sisteme dönüştürün. Değerler eşleşiyorsa, hesaplama doğrudur.