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
- 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
- Dodaj obie liczby, tj. 1101 i 0111;
1101+0111=1 0100 - 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
- 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 - Dodaj obie liczby, tj. 1101 i 0010;
1101+0010= 1111 - 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
- 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.
- Dodajemy obie liczby dopełnienia, tj. 10001 i 10010;
10010+10011= 1 00101 - 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ź.