Zapis stałoprzecinkowy
Zapis stałoprzecinkowy (ang. fixed-point) to metoda reprezentacji liczb ułamkowych w informatyce. W tym systemie określa się z góry liczbę bitów, które będą przeznaczone na część całkowitą i ułamkową liczby, a pozycja przecinka jest ustalana według potrzeb precyzyjnych obliczeń.
Podział bitów
Na przykład w 32-bitowym słowie można przydzielić:
- 24 bity na część całkowitą i 8 bitów na część ułamkową,
- 16 bitów na każdą część,
- 30 bitów na część całkowitą i 2 bity na część ułamkową.
Decyzję o podziale podejmuje projektant systemu w zależności od wymagań dotyczących zakresu i precyzji obliczeń.
Zakresy liczb
Wartość liczby stałoprzecinkowej oblicza się według wag bitów, gdzie wagi bitów części całkowitej są równe , a części ułamkowej . Dokładność reprezentacji wynosi .
Na przykład, dla 4 bitów na część całkowitą (k=4) i 2 bity na część ułamkową (n=2):
- Wartość maksymalna: ,
- Wartość minimalna: ,
- Przykładowa liczba: .
Praktyczna realizacja arytmetyki stałoprzecinkowej
Artymetyka stałoprzecinkowa wykorzystuje operacje całkowitoliczbowe, co pozwala na jej zastosowanie w systemach, które nie obsługują liczb zmiennoprzecinkowych. Jest to przydatne w prostych mikrokomputerach oraz w sytuacjach, gdy wydajność jednostki zmiennoprzecinkowej jest niewystarczająca.
Obliczając wartość liczby stałoprzecinkowej w kodzie binarnym, uzyskuje się . Operacje arytmetyczne przedstawiają się następująco:
- Dodawanie/odejmowanie: , wynik jest w postaci stałoprzecinkowej.
- Mnożenie: , wynik wymaga podziału przez .
- Dzielenie: Dzielną mnoży się przez przed dzieleniem: .
Mnożenie i dzielenie przez potęgę dwójki odpowiada przesunięciom bitowym, co czyni te operacje szybkim procesem.