Kod uzupełnień do jedności
Z Wikipedii
Kod uzupełnień do jedności to sposób zapisu liczb całkowitych oznaczany jako ZU1 lub U1. Liczby dodatnie zapisywane są jak w naturalnym kodzie binarnym, przy czym najbardziej znaczący bit – traktowany jako bit znaku – musi mieć wartość 0. Do reprezentowania liczb ujemnych wykorzystywana jest bitowa negacja danej liczby, co sprawia, że bit znaku ma wartość 1. Wynika z tego również występowanie dwóch reprezentacji zera: +0 (00000000U1) i -0 (11111111U1). W związku z tym liczby zapisane w ZU1 na n bitach pochodzą z zakresu:
co daje zakres identyczny jak w reprezentacji znak-moduł. Dla 8 bitów (bajtu) są to liczby od -127 do 127.
Dodawanie liczb w ZU1 polega na bitowym dodawaniu, jednak należy pamiętać o dodaniu przeniesienia występującego na najwyższym bicie. Potrzebne jest to w celu otrzymania poprawnego wyniku. Poniższy przykład wyjaśni taką konieczność.
[edytuj] Przykład
Obliczając wartość wyrażenia 5 + (-3) oczekujemy wyniku 2. Dokonując tej operacji na liczbach w kodzie U1, zapominając o przeniesieniu uzyskany wynik byłby inny:
00000101 (510) 11111100 (-310) + --------- 00000001 (110) 00000001 (dodajemy 1, bo wystąpiło przeniesienie) + --------- 00000010 (210 czyli prawidłowy wynik) |