W poprzedniej sekcji dowiedzieliśmy się o różnych uzupełnieniach, takich jak uzupełnienie do 1, uzupełnienie do 2, uzupełnienie do 9 i uzupełnienie do 10 itd. W tej sekcji nauczymy się wykonywać operacje arytmetyczne, takie jak dodawanie i odejmowanie, korzystając z uzupełnienia do jedynki. Dodawanie i odejmowanie możemy wykonywać za pomocą uzupełnień do jedynek, dwójek, dziewiątek i dziesiątek.
Dodawanie za pomocą uzupełnienia do jedynki
Istnieją trzy różne przypadki, gdy dodajemy dwie liczby binarne, które są następujące:
Przypadek 1: Dodanie liczby dodatniej do liczby ujemnej, gdy liczba dodatnia ma większą wielkość.
Najpierw oblicz uzupełnienie do jedynki podanej liczby ujemnej. Podsumuj podaną liczbą dodatnią. Jeśli otrzymamy przeniesienie końcowe 1, zostanie ono dodane do LSB.
Przykład: 1101 i -1001
- Najpierw znajdź uzupełnienie 1 liczby ujemnej 1001. Aby znaleźć uzupełnienie 1, zamień wszystkie 0 na 1 i wszystkie 1 na 0. Uzupełnienie 1 liczby 1001 wynosi 0110.
- Teraz dodaj obie liczby, tj. 1101 i 0110;
1101+0110=1 0011 - Dodając obie liczby, otrzymamy przeniesienie końcowe 1. Dodajemy to przeniesienie końcowe do LSB 0011.
0011+1=0100
Przypadek 2: Dodanie wartości dodatniej do wartości ujemnej w przypadku, gdy liczba ujemna ma większą wartość.
Najpierw oblicz uzupełnienie do jedynki wartości ujemnej. Podsumuj to liczbą dodatnią. W tym przypadku nie otrzymaliśmy przeniesienia końcowego. Weź więc uzupełnienie wyniku do jedynki, aby uzyskać wynik końcowy.
Uwaga: Wynik jest wartością ujemną.
Przykład: 1101 i -1110
- Najpierw znajdź uzupełnienie 1 liczby ujemnej 1110. Aby znaleźć uzupełnienie 1, zamieniamy wszystkie 0 na 1 i wszystkie 1 na 0. Uzupełnienie 1 liczby 1110 wynosi 0001.
- Teraz dodaj obie liczby, tj. 1101 i 0001;
1101+0001= 1110 - Teraz znajdź uzupełnienie 1 wyniku 1110, który jest wynikiem końcowym. Zatem uzupełnienie 1 wyniku 1110 wynosi 0001 i dodajemy 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 1 obu liczb ujemnych, a następnie dodajemy oba te liczby dopełnienia. W tym przypadku zawsze otrzymujemy przeniesienie końcowe, które jest dodawane do LSB, a aby uzyskać wynik końcowy, bierzemy uzupełnienie wyniku o 1.
Uwaga: Wynik jest wartością ujemną.
Przykład: -1101 i -1110 w rejestrze pięciobitowym
- Najpierw znajdź uzupełnienie 1 liczb ujemnych 01101 i 01110. Aby znaleźć uzupełnienie 1, zamieniamy wszystkie 0 na 1 i wszystkie 1 na 0. Uzupełnienie 1 liczby 01110 to 10001, a 01101 to 10010.
- Teraz dodajemy obie liczby dopełnienia, tj. 10001 i 10010;
10001+10010= 1 00011 - Dodając obie liczby, otrzymamy przeniesienie końcowe 1. Dodajemy to przeniesienie końcowe do LSB 00011.
00011+1=00100 - Teraz znajdź uzupełnienie 1 wyniku 00100, który jest ostateczną odpowiedzią. Zatem uzupełnienie 1 wyniku 00100 wynosi 110111. Dodaj znak minus przed liczbą, abyśmy mogli stwierdzić, że jest to liczba ujemna.
Odejmowanie przy użyciu uzupełnienia do jedynki
Oto następujące kroki, aby odjąć dwie liczby binarne przy użyciu uzupełnienia do jedynki
- W pierwszym kroku znajdź uzupełnienie odejmowania do jedynki.
- Następnie dodaj liczbę dopełnienia z minusendem.
- Jeśli masz przeniesienie, dodaj je do jego LSB. W przeciwnym razie weź uzupełnienie 1 do wyniku, który będzie ujemny
Uwaga: Wartość odejmowania zawsze jest odejmowana od odejmowania.
Przykład 1: 10101 - 00111
Bierzemy uzupełnienie do 1 odejmowania 00111 i wychodzi 11000. Teraz je zsumuj. Więc,
10101+11000 =1 01101.
W powyższym wyniku otrzymujemy bit przeniesienia 1, więc dodaj go do LSB danego wyniku, tj. 01101+1=01110, co jest odpowiedzią.
Przykład 2: 10101 - 10111
Bierzemy uzupełnienie do 1 odejmowania 10111 i wychodzi 01000. Teraz dodaj obie liczby. Więc,
10101+01000 =11101.
W powyższym wyniku nie otrzymaliśmy bitu przenoszenia. Oblicz więc uzupełnienie wyniku do jedynki, tj. 00010, które jest liczbą ujemną i ostateczną odpowiedzią.