System o 3 bitach cechy i 4 mantysy
Pozostaje nam zatem umówić się, ile bitów przeznaczymy na mantysę, a ile na cechę. Typowe wartości to \( (m=52, c=12) \), \( (m=40,c=8) \). Dla celów ilustracyjnych przyjmijmy, że \( (m=4, c=3) \) i zobaczmy dokładnie, jak wygląda arytmetyka zmiennopozycyjna w tym mocno okrojonym zakresie. Mamy więc 8 różnych cech i 8 różnych mantys: 4 dodatnie i 4 ujemne – zauważmy, że warunki narzucone na mantysy ograniczają nam swobodę układania bitów, stąd gubimy jeden stopień swobody. Spodziewamy się więc możliwości przedstawienia \( 64 \) różnych liczb niezerowych.
Przyjmujemy zatem uzupełnieniową reprezentację cechy i mantysy. Bity cechy mają zatem kolejno wartości \( -4,2,1 \), a bity mantysy kolejno \( -1,\frac{1}{2},\frac{1}{4},\frac{1}{8} \). Przykładowo liczba \( \frac{3}{8} \) ma zatem przedstawienie dokładne \( 111 \ \ 0110 \), czyli
\( c=-4+2+1=-1, m=\frac{1}{2}+\frac{1}{4}=\frac{3}{4} \).
Spróbujmy znaleźć reprezentację liczby \( \frac{2}{11} \). Zaczynamy od zamiany tej liczby na system binarny, otrzymując kolejno bity \( 0.001011\ldots \). Tu możemy już przerwać, mimo że jeszcze nie trafiliśmy okresu, gdyż i tak interesują nas tylko \( 3 \) bity od wystąpienia pierwszej jedynki, a czwarty bit rozważamy tylko po to, żeby uzyskać stosowne zaokrąglenie. Po dodaniu ostatniej wyznaczonej jedynki do reszty, czyli zaokrągleniu do \( 3 \) znaczących cyfr, dostajemy liczbę \( 0.00110 \), czyli \( \frac{3}{16} \). Normalizujemy ją przesuwając o 2 pozycje w lewo, czyli mnożymy przez \( 2^2 \), więc ostatecznie dostajemy \( 110 \ \ 0110 \). Cecha jest oczywiście równa \( -2 \) - niweluje efekt przesunięcia o 2 pozycje. Zatem liczba \( \frac{3}{16}=2^{-2}\cdot \frac{3}{4} \) najlepiej przybliża \( \frac{2}{11} \) w naszym systemie, i ją właśnie przyjmujemy jako właściwego reprezentanta. Błąd względny, który przy tym popełniamy jest równy
\( \frac{|\frac{2}{11}-\frac{3}{16}|}{\frac{2}{11}}=\frac{1}{32} \).
Przyjrzyjmy się teraz dokładnie wszystkim wartościom reprezentowanym w naszym systemie. Zacznijmy od cechy 0 i mantys dodatnich. Są tylko \( 4 \) legalne dodatnie mantysy:
| cecha |
mantysa |
wartość |
000 000 000 000 |
0100 0101 0110 0111 |
\( \frac{4}{8} \) \( \frac{5}{8} \) \( \frac{6}{8} \) \( \frac{7}{8} \) |
Dla cechy \( 1 \) wartości te mnożą się przez 2:
| cecha |
mantysa |
wartość |
001 001 001 001 |
0100 0101 0110 0111 |
\( \frac{4}{4} \) \( \frac{5}{4} \) \( \frac{6}{4} \) \( \frac{7}{4} \) |
... i dalej dla cech 2 i 3:
| cecha |
mantysa |
wartość |
010 010 010 010 |
0100 0101 0110 0111 |
\( \frac{4}{2} \) \( \frac{5}{2} \) \( \frac{6}{2} \) \( \frac{7}{2} \) |
|
|
| cecha |
mantysa |
wartość |
011 011 011 011 |
0100 0101 0110 0111 |
\( \frac{4}{1} \) \( \frac{5}{1} \) \( \frac{6}{1} \) \( \frac{7}{1} \) |
|
Uzyskaliśmy zatem całkiem niezłą rozdzielczość, którą w systemie stałopozycyjnym musielibyśmy okupić siedmiobitową częścią ułamkową.
Zauważmy, jakie własności ma uzyskane rozmieszczenie dokładnie reprezentowanych wartości. Po pierwsze, są one rozmieszczone nierównomiernie. Im dalej od zera tym rzadziej (dla cechy 3 wartości skaczą już o 1). W rzeczywistości w niektórych systemach nie są reprezentowane nawet wszystkie liczby całkowite mieszczące się w przedziale określoności; luki między nimi są większe niż 1. W każdym przedziale, odpowiadającym danej cesze, wszystkie wartości są rozmieszczone równomiernie; jest ich tyle, ile mantys danego znaku. W sąsiednim z prawej przedziale, odpowiadającym cesze większej o 1, jest tyle samo wartości rozmieszczonych jednak dwukrotnie rzadziej, a po lewej – odpowiadającym cesze o 1 mniejszej – dwukrotnie gęściej.
Ujemne liczby są rozmieszczone według tego samego schematu, tyle że zaczynają się od \( -8 \) i kolejne wartości to \( -7,-6,-5,-\frac{8}{2},-\frac{7}{2},-\frac{6}{2}\ldots \).