Kod z przesunięciem

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Kod z przesunięciem (kod spolaryzowany, kod bias, excess-N) jest sposobem zapisu liczb. Opiera się na idei przyporządkowania każdej liczbie (najczęściej całkowitej) pewnej liczby nieujemnej, poprzez dodanie do zamienianej liczby pewnej wartości N. System koduje liczbę -N jako zero, jej następnik jako 1 itd., można go więc rozumieć jako funkcję liniową y=x+N, gdzie y to zapis liczby z przesunięciem, x to dane wejściowe, zaś N wartość przesunięcia.

Przykład[edytuj | edytuj kod]

Dla liczb zapisywanych dziesiętnie z przesunięciem 5 poszczególne zapisy oznaczają liczbę z drugiej kolumny:

 0    -5
 1    -4
 2    -3
 3    -2 
 4    -1
 5     0
 6     1 
 7     2 
 8     3
 9     4
10     5


W typowych zastosowaniach w informatyce, przy zapisie liczb w systemie binarnym łatwo jest wyznaczyć wartość optymalnego przesunięcia tak, by umożliwione było kodowanie liczb z możliwie najszerszego symetrycznego względem zera zakresu liczb. Przykładowo, zwykły zapis binarny na 4 bitach umożliwia zapis liczb z przedziału domkniętego od 0 do 15, przyjęło się więc używać przesunięcie równe 7. Przykład zapisu liczb z takiego zakresu:

-7   0000
-6   0001
-5   0010
...  ...
-1   0110
 0   0111
 1   1000
...  ...
 5   1100
 6   1101
 7   1110
 8   1111

Dla przesunięcia równego 2^{n-1}-1 na n bitach można zakodować liczby z przedziału domkniętego od -2^{n-1}+1 do 2^{n-1}.

Zastosowanie[edytuj | edytuj kod]

Zapis z przesunięciem jest najczęściej wykorzystywany do zapisu części wykładniczej liczb zmiennoprzecinkowych, na przykład w standardzie IEEE 754.

Zobacz też[edytuj | edytuj kod]