logo

Dodawanie i odejmowanie przy użyciu uzupełnienia do dwójki

W poprzedniej sekcji dowiedzieliśmy się, jak wykonywać operacje arytmetyczne, takie jak dodawanie i odejmowanie, korzystając z uzupełnienia do jedynki. W tej sekcji nauczymy się wykonywać te operacje, korzystając z uzupełnienia do dwójki.

skrypt ładowania javascript

Dodawanie za pomocą uzupełnienia do 2

Istnieją trzy różne przypadki, gdy dodajemy dwie liczby binarne przy użyciu uzupełnienia do 2, co wygląda następująco:

Przypadek 1: Dodanie liczby dodatniej do liczby ujemnej, gdy liczba dodatnia ma większą wielkość.

Najpierw znajdź uzupełnienie do 2 podanej liczby ujemnej. Podsumuj podaną liczbą dodatnią. Jeśli otrzymamy końcowe przeniesienie 1, liczba będzie liczbą dodatnią, a bit przeniesienia zostanie odrzucony, a pozostałe bity będą ostatecznym wynikiem.

Przykład: 1101 i -1001

  1. Najpierw znajdź uzupełnienie 2 liczby ujemnej 1001. Aby znaleźć uzupełnienie 2, zamień wszystkie 0 na 1 i wszystkie 1 na 0 lub znajdź uzupełnienie 1 liczby 1001. Uzupełnienie 1 liczby 1001 to 0110, a dodaj 1 do LSB wyniku 0110. Zatem uzupełnienie 2 liczby 1001 wynosi 0110+1=0111
  2. Dodaj obie liczby, tj. 1101 i 0111;
    1101+0111=1 0100
  3. Dodając obie liczby, otrzymujemy przeniesienie na koniec 1. Odrzucamy przeniesienie na koniec. Zatem dodanie obu liczb wynosi 0100.

Przypadek 2: Dodanie wartości dodatniej do wartości ujemnej, gdy liczba ujemna ma większą wielkość.

Początkowo dodaj wartość dodatnią z wartością uzupełnienia dwójki do liczby ujemnej. Tutaj nie znaleziono żadnego przeniesienia końcowego. Zatem, aby otrzymać wynik końcowy, bierzemy uzupełnienie wyniku do 2.

Uwaga: Wynik jest wartością ujemną.

Przykład: 1101 i -1110

  1. Najpierw znajdź uzupełnienie 2 liczby ujemnej 1110. Zatem, aby znaleźć uzupełnienie 2, dodaj 1 do LSB wartości uzupełnienia 1 0001.
    0001+1=0010
  2. Dodaj obie liczby, tj. 1101 i 0010;
    1101+0010= 1111
  3. Znajdź uzupełnienie 2 wyniku 1110, który jest wynikiem końcowym. Zatem uzupełnieniem 2 wyniku 1110 jest 0001. Dodaj znak minus przed liczbą, abyśmy mogli stwierdzić, że jest to liczba ujemna.

Przypadek 3: Dodanie dwóch liczb ujemnych

W tym przypadku najpierw znajdź uzupełnienie do 2 obu liczb ujemnych, a następnie dodamy oba te liczby dopełnienia. W tym przypadku zawsze otrzymamy przeniesienie końcowe, które zostanie dodane do LSB, a zapominając o wyniku końcowym, weźmiemy uzupełnienie wyniku do 2.

Uwaga: Wynik jest wartością ujemną.

Przykład: -1101 i -1110 w rejestrze pięciobitowym

  1. Najpierw znajdź uzupełnienie 2 liczb ujemnych 01101 i 01110. Aby znaleźć uzupełnienie 2, dodajemy 1 do LSB uzupełnienia 1 tych liczb. Uzupełnieniem 2 liczby 01110 jest 10010, a 01101 to 10011.
  2. Dodajemy obie liczby dopełnienia, tj. 10001 i 10010;
    10010+10011= 1 00101
  3. Dodając obie liczby, otrzymujemy końcowe przeniesienie 1. To przeniesienie jest odrzucane, a ostatecznym wynikiem jest uzupełnienie 2 wyniku 00101. Zatem uzupełnienie 2 wyniku 00101 wynosi 11011 i dodajemy liczbę ujemną znak przed liczbą, abyśmy mogli rozpoznać, że jest to liczba ujemna.

Odejmowanie przy użyciu uzupełnienia do 2

Oto następujące kroki, aby odjąć dwie liczby binarne przy użyciu uzupełnienia do 2

  • W pierwszym kroku znajdź uzupełnienie odejmowania do 2.
  • Dodaj liczbę dopełniającą z minusendem.
  • Jeśli otrzymamy przeniesienie poprzez dodanie obu liczb, wówczas odrzucimy to przeniesienie i wynik będzie dodatni, w przeciwnym razie do wyniku dodamy uzupełnienie do 2, które będzie ujemne.

Przykład 1: 10101 - 00111

Bierzemy uzupełnienie do 2 odejmowania 00111, czyli 11001. Teraz je zsumuj. Więc,

10101+11001 =1 01110.

W powyższym wyniku otrzymujemy bit przeniesienia 1. Odrzucamy więc ten bit przeniesienia, a pozostały wynik końcowy i liczba dodatnia.

Przykład 2: 10101 - 10111

Bierzemy uzupełnienie do 2 odejmowania 10111 i wychodzi 01001. Teraz dodajemy obie liczby. Więc,

10101+01001 =11110.

W powyższym wyniku nie otrzymaliśmy bitu przenoszenia. Oblicz więc uzupełnienie wyniku do 2, tj. 00010. Jest to liczba ujemna i ostateczna odpowiedź.