Reklama
Dzisiaj jest 10 stycznia 2025 r.
Chcę dodać własny artykuł
Reklama
Reklama
Reklama

Liczba zmiennoprzecinkowa

Liczba zmiennoprzecinkowa

Liczba zmiennoprzecinkowa to reprezentacja liczby rzeczywistej w notacji naukowej. Jej wartość oblicza się według wzoru: x = S M B^E, gdzie:

Reklama
  • S – znak liczby (1 lub -1),
  • M – znormalizowana mantysa (liczba ułamkowa),
  • B – podstawa systemu liczbowego (2 dla systemów komputerowych),
  • E – wykładnik, liczba całkowita.

Mantysa jest znormalizowana i należy do przedziału [1, B). Liczby zmiennoprzecinkowe mają ograniczoną dokładność i mieszczą się w skończonym zbiorze wartości.

Zakres reprezentacji

Zakres wartości reprezentowanych w systemie zmiennoprzecinkowym określają wartości maksymalne i minimalne dla mantysy i wykładnika:

Reklama
  • E_\min = -B^{n+1}, E_\max = B^n – 1,
  • M_\min = 1, M_\max = B – B^{-(m-1)}.

Wartości te pozwalają określić minimalną i maksymalną reprezentowaną liczbę dodatnią: x_\min = M_\min B^{E_\min}, x_\max = M_\max B^{E_\max}.

Błędy w reprezentacji

Błąd względny reprezentacji liczby zmiennoprzecinkowej wynosi \frac{1}{2 B^{m-1}}. W przypadku gdy |x|, występuje niedomiar (underflow), a gdy |x|>M_\max B^{E_\max}, mamy do czynienia z nadmiarem (overflow).

Operacje na liczbach zmiennoprzecinkowych

Arytmetyka zmiennoprzecinkowa nie jest łączna ani rozdzielna. Przy obliczeniach mogą występować zaokrąglenia, nieprawidłowe operacje, przepełnienie i niedomiar.

Przykładowe operacje:

  • x_1 + x_2 = (M_1 + M_2 B^{E_2 – E_1}) B^{E_1},
  • x_1 \cdot x_2 = (S_1 S_2) (M_1 M_2) B^{E_1 + E_2}.

Implementacje sprzętowe

Liczby zmiennoprzecinkowe w implementacjach sprzętowych wyrażane są w systemie binarnym (B = 2). Standard IEEE 754 definiuje klasy liczb: pojedynczej precyzji (single) i podwójnej precyzji (double).

Typy zmiennoprzecinkowe w językach programowania

  • C, C++: float, double, long double
  • Pascal: real
  • Fortran: real, DOUBLE PRECISION

Wartości specjalne

W systemach zmiennoprzecinkowych zdefiniowane są wartości specjalne, takie jak:

  • NaN (Not-a-Number),
  • Zero (+0, -0),
  • Nieskończoność (pozytywna i negatywna).

Historia

Pierwsze zastosowanie binarnych liczb zmiennoprzecinkowych miało miejsce w mechanicznych komputerach Konrada Zuse’a.

Reklama
Reklama