Kod Uzupełnień do Dwóch (U2)
Kod Uzupełnień do Dwóch (U2) to popularny system reprezentacji liczb całkowitych w systemach cyfrowych, który umożliwia wykonywanie operacji dodawania i odejmowania jak dla liczb binarnych bez znaku. Wartość przeciwną liczby uzyskuje się przez odjęcie jej od 2 dla jednobitowych liczb lub od 2 do potęgi n dla n-bitowych. U2 koduje liczby w przedziale od do , co dla 8-bitowej reprezentacji daje zakres od -128 do 127.
Zapis Liczb w U2
W systemie U2 najstarszy bit (bit znaku) ma wagę . Wartość dziesiętna liczby może być wyrażona wzorem:
Wartość bitu znaku wskazuje, czy liczba jest dodatnia (bit = 0) czy ujemna (bit = 1).
Liczba Przeciwna
Aby uzyskać liczbę przeciwną w U2, należy wykonać dwie operacje:
- Inwersja bitów (0 na 1 i odwrotnie).
- Zwiększenie wyniku o 1.
Operacje Aritmetyczne
Dodawanie i Odejmowanie
Dodawanie i odejmowanie w U2 wykonuje się jak dla liczb binarnych. Jeśli przeniesienie wystąpi tylko na bit znaku, mamy do czynienia z nadmiarem, co oznacza, że wynik nie mieści się w zakodowanym zakresie.
Mnożenie
Mnożenie w U2 można realizować za pomocą metody Bootha, która polega na analizie par bitów mnożnika i wykonywaniu odpowiednich operacji (dodawania lub odejmowania) w zależności od wartości tych par.
Dzielenie
W U2 dzielenie można przeprowadzić różnymi metodami, m.in. metodą porównawczą, która angażuje przesunięcie reszty częściowej oraz porównanie jej z dzielnikiem, oraz metodą nierestytucyjną, gdzie analizowane są znaki dzielnej i dzielnika.
Przykłady
Przykład zamiany liczby 74 na U2:
Inwersja i dodanie 1 dla uzyskania liczby -74:
Przykład dodawania:
Przykład dzielenia:
Wyniki operacji w kodzie U2 można weryfikować, przekształcając je do formatu znak-moduł oraz sprawdzając poprawność obliczeń.