Dzisiaj jest 25 stycznia 2025 r.
Chcę dodać własny artykuł
Reklama

Kod uzupełnień do dwóch

Chcę dodać własny artykuł

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 -2^{n-1} do 2^{n-1}-1, co dla 8-bitowej reprezentacji daje zakres od -128 do 127.

Zapis Liczb w U2

W systemie U2 najstarszy bit (bit znaku) ma wagę -2^{n-1}. Wartość dziesiętna liczby może być wyrażona wzorem:

-a_{n-1} \times 2^{n-1} + \sum_{i=0}^{n-2} a_i \times 2^i.

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:

74_{10} = 01001010_{U2}

Inwersja i dodanie 1 dla uzyskania liczby -74:

10110110_{U2} = -74_{10}

Przykład dodawania:

-11\frac{3}{4} + -7\frac{2}{4} = -19\frac{1}{4} = 10110011_{U2}

Przykład dzielenia:

P = -\frac{15}{16} = 1.0001_{U2}

Wyniki operacji w kodzie U2 można weryfikować, przekształcając je do formatu znak-moduł oraz sprawdzając poprawność obliczeń.