logo

2'nin tümleyenini kullanarak Toplama ve Çıkarma

Önceki bölümümüzde 1'in tümleyenini kullanarak toplama ve çıkarma gibi aritmetik işlemleri nasıl yapabileceğimizi öğrenmiştik. Bu bölümde bu işlemleri 2'nin tümleyenini kullanarak yapmayı öğreneceğiz.

java operatörleri

2'nin tümleyenini kullanarak toplama

İki ikili sayıyı 2'nin tamamlayıcısını kullanarak topladığımızda üç farklı durum mümkün olur:

Durum 1: Pozitif sayının büyüklüğü daha büyük olduğunda pozitif sayının negatif bir sayıyla toplanması.

Başlangıçta verilen negatif sayının 2'ye tümleyenini bulun. Verilen pozitif sayıyı toplayın. Eğer sondaki taşıma 1'i alırsak, o zaman sayı pozitif bir sayı olacak ve taşıma biti atılacak ve kalan bitler nihai sonuç olacaktır.

Örnek: 1101 ve -1001

  1. Öncelikle 1001 negatif sayısının 2'ye tümleyenini bulun. Yani 2'nin tümleyenini bulmak için 0'ı 1'e ve 1'i de 0 olarak değiştirin veya 1001 sayısının 1'e tümleyenini bulun. 1001 sayısının 1'e tümleyeni 0110'dur ve 0110 sonucunun LSB'sine 1 ekleyin. Yani 1001 sayısının 2'ye tümleyeni 0110+1=0111 olur
  2. Her iki sayıyı da ekleyin, yani 1101 ve 0111;
    1101+0111=1 0100
  3. Her iki sayıyı da topladığımızda, uçtaki taşıma 1'i elde ederiz. Uçtaki taşımayı atarız. Yani her iki sayının toplamı 0100'dür.

Durum 2: Negatif sayının büyüklüğü daha büyük olduğunda pozitif değerin negatif değerle toplanması.

Başlangıçta negatif sayının 2'ye tümleyen değeriyle pozitif bir değer ekleyin. Burada uçtan uca taşıma bulunmaz. Yani nihai sonucu elde etmek için sonucun 2'ye tümleyenini alırız.

Not: Sonuç negatif bir değerdir.

Örnek: 1101 ve -1110

  1. Öncelikle 1110 negatif sayısının 2'ye tümleyenini bulun. Yani 2'nin tümleyenini bulmak için 1'in tümleyen değeri 0001'in LSB'sine 1 ekleyin.
    0001+1=0010
  2. Her iki sayıyı da ekleyin, yani 1101 ve 0010;
    1101+0010= 1111
  3. Nihai sonuç olan 1110 sonucunun 2'ye tümleyenini bulun. Yani, 1110 sonucunun 2'ye tümleyeni 0001'dir ve sayının önüne negatif bir işaret ekleyin, böylece bunun negatif bir sayı olduğunu belirleyebiliriz.

Durum 3: İki negatif sayının toplanması

Bu durumda önce her iki negatif sayının 2'ye tümleyenini bulalım, sonra bu tümleyen sayıları toplayacağız. Bu durumda her zaman LSB'ye eklenecek olan uçtaki taşımayı elde edeceğiz ve nihai sonucu unutarak sonucun 2'ye tümleyenini alacağız.

Not: Sonuç negatif bir değerdir.

Örnek: Beş bitlik kayıtta -1101 ve -1110

  1. Öncelikle 01101 ve 01110 negatif sayılarının 2'ye tümleyenini bulun. Yani 2'nin tümleyenini bulmak için bu sayıların 1'e tümleyeninin LSB'sine 1 ekliyoruz. 01110 sayısının 2'ye tümleyeni 10010, 01101 ise 10011'dir.
  2. Hem tamamlayıcı sayıları, yani 10001 hem de 10010'u toplarız;
    10010+10011= 1 00101
  3. Her iki sayıyı da toplayarak, sondaki elde 1'i elde ederiz. Bu taşıma atılır ve nihai sonuç, 00101 sonucunun 2. tümleyenidir. Yani, 00101 sonucunun 2'ye tümleyeni 11011 olur ve bir negatif ekleriz. Sayının negatif bir sayı olduğunu anlayabilmemiz için sayının önüne işaret koyarız.

2'nin tümleyenini kullanarak çıkarma

Bunlar, 2'nin tümleyenini kullanarak iki ikili sayıyı çıkarmak için aşağıdaki adımlardır

  • İlk adımda, çıkanın 2'ye tümleyenini bulun.
  • Tümleyen sayısını eksilen ile ekleyin.
  • Her iki sayıyı da toplayarak elde edersek, bu elde etmeyi atarız ve sonuç pozitif olur, aksi takdirde negatif olacak sonucun 2'ye tümleyenini alırız.

Örnek 1: 10101 - 00111

Çıkarılan 00111'in 2'ye tümleyenini alıyoruz, yani 11001. Şimdi bunları toplayın. Bu yüzden,

10101+11001 =1 01110.

Yukarıdaki sonuçta, taşıma biti 1'i elde ederiz. Yani bu taşıma bitini atarız ve geriye nihai sonuç ve pozitif bir sayı kalır.

Örnek 2: 10101 - 10111

Çıkarılan 10111'in 2'ye tümleyenini alıyoruz ve sonuç 01001 oluyor. Şimdi her iki sayıyı da topluyoruz. Bu yüzden,

10101+01001 =11110.

Yukarıdaki sonuçta taşıma bitini alamadık. Yani sonucun 2'ye tümleyenini hesaplayın, yani 00010. Bu, negatif sayı ve son cevaptır.