Negatif sayıları neredeyse kesin olarak duymuşsunuzdur. Bilgisayar bilimi ve bilgisayar programlama dünyasına birazcık bile maruz kaldıysanız, ikili sayılar kavramı tamamen yabancı değildir. Ancak programlama dünyasını kişisel olarak keşfetmediyseniz, muhtemelen ikili sayılarla hiçbir zaman önemli ölçüde çalışmamışsınızdır.
Bilgisayarlar kendi başlarına "düşünemez" veya "karar veremez", ancak sıralı talimatları şaşmaz bir doğrulukla takip edebildikleri için, matematikçiler uzun zaman önce geldiler. bilgisayarların (veya yeterince sabırlı insanların) sadece 0 ve rakamlarını kullanarak toplama, çıkarma ve diğer matematiksel işlemleri yapması için bir yol 1.
Ancak bu iki fikri negatif sayılar üretmek için birleştirmenin bir yolu var mı? Bir makineye mevcut bir sayının önüne küçük bir yatay çubuk yapıştırmasını söylemek kadar basit mi, yoksa "bit ve bayt" faktörü işleri daha karmaşık hale mi getiriyor?
İkili Sayılar Nedir?
Bilgisayarların muazzam miktarda işlem gücü vardır ve eski bir hançer bile, aritmetik olarak en yetenekli insan için bile anlaşılmaz görünen bir hızda hesaplamalar yapabilir. Ancak bunlar beyin değildir ve karmaşık bilgileri işlemelerini sağlamanın tek yolu, mümkün olan her şeyi iki durumdan birine, örneğin AÇIK veya KAPALI'ya havale etmektir.
"Bilgisayarda", tek bir 0 veya 1, bir bit. Bunların grupları şunları içerir: nibble (4 bit), iyi bilinen bayt (8), kelime (1) ve uzun kelime (32).
492 ve 35 gibi tipik olarak gördüğünüz ondalık sayılar "taban-10"dur, çünkü bunlar 10 aşamalı sembol içerirler (0'dan 9'a kadar olan rakamlar). sola doğru bir sonraki yere "yuvarla" - bir sonraki "10'un gücü". Bunun yerine ikili sayılar yalnızca iki sembol içerir (0 ve 1 rakamları) ve "taban-2." Sayının sonundan sola doğru her hareket, ikinin artan kuvvetidir: Bitiş rakamları 1'i, sonraki 2'yi ve ardından 4, 8, 16'yı temsil eder. yakında.
- Ondalık sayı, 10 tabanlı sistemdeki herhangi bir sayıdır, mutlaka ondalık nokta içeren bir sayı değildir.
İkili Sayı Örnekleri
İkili "nybble" 0101'in 1. ve 4. basamaklarında 1'ler ve 2. ve 8. yerde 0'lar vardır. Dolayısıyla ondalık eşdeğeri 1 + 4 = 5'tir.
Benzer şekilde, 1001 1100 baytı 128 + 16 + 8 + 4'e (28 + 25 + 24 + 23) = 156.
Tamamlayıcı bir ikili sayının yalnızca rakamları "anahtarlanmış" olan sayıdır. Örneğin, 1001 1100 = 0110 0011'in tümleyeni.
Negatif Sayıları İkiliye Çevirme
Negatif bir ondalık sayıyı ikili sayıya nasıl dönüştürdüğünüz, muhtemelen diğer sayısal dönüşümlerden oldukça farklıdır. Zihniniz, tüm karşılaştırmalı tembelliğine rağmen, birçok yönden herhangi birinden çok daha esnek olduğu için gerçekleştirdiniz. İŞLEMCİ. Ancak, bu basit bir süreçtir.
Dönüşüm bir kullanılarak yapılır ikinin tamamlayıcısı ikiliBu, programcının bilgisayara 1 ile başlayan herhangi bir ikili sayıyı negatif olarak yorumlaması talimatını vermesini gerektirir. Program daha sonra karşılık gelen pozitif sayıyı ikili sistemde oluşturur, tümleyenini alır ve bir ekler.
Örneğin, −47 sayısı verildiğinde, bilgisayar +47 için ikili sayı oluşturacaktır:
0001 1111
Bunun tamamlayıcısı:
1110 0000
Buna bir tane eklemek şunları verir:
1110 0001
Bilgisayarın, baştaki 1'i negatif olarak ele almak ve sonuçları, 1 sembolü tarafından işgal edilen 2'nin güçlerini toplamaktan farklı bir şekilde işlemek için bu sayıları "imzaladığını" unutmayın.