|
|
Kod uzupełnień do jednościZ WikipediiKod 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ładObliczają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:
[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:
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ładObliczają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:
[edytuj] Zobacz też |