Kod uzupełnień do jedności

Z Wikipedii

Skocz do: nawigacji, szukaj

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:

[- 2^{n-1}+1\quad ,\quad 2^{n-1}-1]

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 (5)10
   11111100 (-3)10
+ ---------
   00000001 (1)10
   00000001 (dodajemy 1, bo wystąpiło przeniesienie)
+ ---------
   00000010 (2)10 czyli prawidłowy wynik)

[edytuj] Zobacz też

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:

[- 2^{n-1}+1\quad ,\quad 2^{n-1}-1]

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 (5)10
   11111100 (-3)10
+ ---------
   00000001 (1)10
   00000001 (dodajemy 1, bo wystąpiło przeniesienie)
+ ---------
   00000010 (2)10 czyli prawidłowy wynik)

[edytuj] Zobacz też


SEO Tools SEO Tools SEO Tools wymiana linkami kreatyna Gry Online Plaza 3 star hotel Los Angeles krynica noclegi Kredyty odnawialne