Kod dopełnieniowy do dwóch
Kod ten pozwala na przechowywanie liczb całkowitych (ujemnych i dodatnich), oraz liczb ułamkowych. W
skrócie nazywa się go (U2).
Pierwszy bit od lewej to tzw. bit znaku.
Gdy zamieniamy liczbę z U2 na dziesiętny to postępujemy tak jak w
przypadku binarnego prostego przy czym pierwszemu bitowi z lewej dodajemy znak minus(-
) z przodu. Przykład:
011(U2) = -
0*2^2 + 1*2^1 + 1*2^0 = 3(10). Teraz nowość: 111(U2) = -1*2^2 + 1*2^1 + 1*2^0 = -1(10). Umiemy już
zamienić liczbę dodatnią z systemu dziesiętnego na kod U2 (tak samo jak w binarnym tylko dopisujemy cyfrę 0 z
lewej w wyniku). Teraz zajmiemy się przeliczeniem liczby ujemnej z systemu dziesiętnego na dopełnieniowy do
dwóch. 13(10) = 01101(U2), -13(10) = ?(U2). Otóż najpierw musimy zamienić liczbę 13 na system binarny, tak jak
to robiliśmy na początku i następnie przeprowadzić tzw. dopełnienie do dwóch.
0 1 1 0 1
1 0 0 1 0
+
1
= 1 0 0 1 1
Aby zamienić liczbę dodatnią na ujemną w systemie U2 trzeba przeprowadzić tzw. dopełnienie do dwóch.
Przebieg dopełnienia w kodzie U2: zamieniamy wszystkie bity na przeciwne i dodajemy arytmetyczne 1 do bitu z
prawej strony (najmniej znaczącego). Tak jak pokazano na przykładzie powyżej.
Wynik: -13(10) = 10011(U2). Sprawdzenie: -1*2^4 + 1*2^1 + 1*2^0 = -13(10).