background image

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 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).