Yazan : Şadi Evren ŞEKER

Konunun diğer başlıkları: 2 tümleyeni, two’s complement

Bilgisayar bilimlerinde, sayılar genelde ikilik tabanda tutulmaktadır. Değerleri ikilik tabanda göstermenin bir devamı olarak eksi sayı ve artı sayıları da ayırmak gerekmektedir. bir tümleyeni gibi iki tümleyeni de eksi sayıları göstrem biçimlerinden birisidir. iki tümleyenini almak için önce bir tümleyeni alınır ardında sayıya ikilik tabanda 1 eklenir.
Örneğin
11011001
sayısının bir tümleyeni aşağıda verilmiştir:
00100110
bu sayıya 1 eklenerek, iki tümleyeni elde edilir:
00100111

Bu sayı aynı zamanda orjinal sayı olan 11011001 sayısının da negatifi gösterimi olarak kullanılabilir.
Bunu bir örnek ile göstermek gerekirse, aşağıdaki çıkarma işlemini ele alalım:

 11001001
 10110101
-
---------
 00010100

bilindiği üzere aslında çıkarma işlemini, çıkarılan sayının negatifini alıp toplama olarak da yorumlayabiliriz.
Bu durumu aynı örnek için tecrübe edelim. Öncelikle çıkarılan sayı olan 10110101 sayısının negatifini alalım, yani iki tümleyenini:
01001010 sayısı elde edilir. Şimdi bu sayının gerçekten negatif olduğunu yukarıdaki örneği toplamaya çevirerek görelim:

 11001001
 01001010
+
---------
100010100

Görüldüğü üzere elde edilen sonucun başında bulunan 1 atılırsa, ilk işlemden çıkan sonuç ile aynıdır.

Yorumlar

  1. solnishka

    Sayıların 8-bit ikili tümleyici yöntemiyle işlendiği bir devrede taşma durumu hangisinde olur?

    a)78(16)-06(16)

    b)59(16)+27(16)

    c)4C(16)+32(16)

    d)26(16)+50(16)

    e)80(16)-7F(16)

    Bu sorunun çözümünü anlatabilirseniz çok sevinicem.Şimdiden teşekkürler.Saygılar.

  2. Şadi Evren ŞEKER Article Author

    Sorunuzu yanıtlayalım.
    Öncelikle sayılar arasındaki işlemin (toplama veya çıkarma) yapılması sırasında, iki tümleyeni alınması istendiği için (two's complement) çıkarma işlemlerinde iki tümleyeni alalım.

    a) 06 sayısının iki tümleyenine bakalım:
    sayının ikilik tabandaki karşılığı 0000 0110
    sayının bir tümleyeni : 1111 1001 (sayının bitlerini ters çeviriyoruz)
    sayının iki tümleyeni : 1111 1010 (bir önceki sayıya 1 ekliyoruz)
    işlem sonucunda toplama işlemine geçiyoruz:
    78 sayısını toplama için ikilik tabana çevirelim :
    0111 1000
    şimdi iki sayıyı toplayalım:
    0111 1000 + 1111 1010 = 10111 0010
    Yukarıdaki işlem sonucunda görüldüğü üzere 8 bitten fazla bir sonuç çıktı (sonuçta 9 bit bulunuyor) bu durumda bir taşma olduğunu söyleyeibliriz ve cevaplarınızdan bir tanesi için a şıkkını seçebilirsiniz.

    Diğer şıkları da benzer şekilde çözebilirsiniz.

    Başarılar

  3. İnan Aydın

    10110101 sayısının ikili tümleyeni olarak 01001010 yazılmış: 01001011 olmalı. Zaten 11001001 + 01001010 işlemi de 01001011'ye göre yapılmış görünüyor, sadece ikili tümleyeni olarak belirtilen sayı hatalı görünüyor.

    İyi çalışmalar.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


3 − iki =