next up previous
Next: Šíření chyb ve výpočtech Up: Zaokrouhlovací chyby Previous: Zaokrouhlovací chyby

Reprezentace čísla v počítači

Celá čísla - přesné výpočty, velmi omezený rozsah

Reálná čísla - čísla v pohyblivé desetinné tečce - FLOATING POINT
$\simeq$ vědecký tvar čísla


Vědecký tvar čísla

Mantisa a exponent jsou v počítači binární čísla, základ u exponentu je 2.

Délka MANTISY - tj. počet bitů na mantisu $\Longrightarrow$ přesnost čísla

přesnost $\Longleftrightarrow$ počet čísel mezi 1 a 2
interval mezi čísly mezi 1 a 2 je rovnoměrný - do paměti se mohou ukládat jenom čísla 1, 1 + $\varepsilon$, 1 + 2 $\varepsilon$, $\cdots$, 2 - $\varepsilon$. Čím více bitů na mantisu, tím menší $\varepsilon \Longrightarrow$ menší chyby při zaokrouhlování (u mezivýsledků je v registrech procesoru přesnost vyšší).
Byly uvedeny všechny mantisy, při změnách změnách exponentů se krok mezi čísly zvýší úměrně 2exponent (relativní chyba čísla se ale nemění).

Délka EXPONENTU - tj. počet bitů na exponent - určuje rozsah

pozn. 1 exponent se zvlášť musí vyhradit pro 0, která nemá logaritmus, mantisy u tohoto exponentu lze využít pro vyznačení chyb (overflow, undefined), dále se může využít pro řídkou síť čísel pod minimem k ošetření podtečení (underflow)

8 - 11 bitů na exponent
8 bitů na exponent např.á-128, 126ñ - 227 @ 3.4 . 1038
9 bitů na exponent - 228@ 1.15 . 1077
10 bitů na exponent - 229@ 1.32 . 10154
11 bitů na exponent - 2210@ 1.74 . 10308

Jednoduchá přesnost = 4 byty


C++ - float  
Fortran - Real = Real*4  
norma IEEE   určuje způsob zaokrouhlování, ne bity na mantisu a exponent  
často   1 bit znaménko + 8 bitů exponent+ 23 bitů mantisa $\Rightarrow \ \varepsilon \simeq 1.2\ .\ 10^{-7} $



Přesnost 1,5 = 6 bytů


TurboPascal - Real 1 bit znaménko + 8 bitů exponent+ 39 bitů mantisa  
nestandardní     $\Rightarrow \ \varepsilon \simeq 1.8\ .\ 10^{-12}$



Dvojitá přesnost = 8 bytů


C++ - double  
Fortran - Double = Real*8  
často   1 bit znaménko + 11 bitů exponent + 52 bit mantisa  
      $\Rightarrow \ \varepsilon \simeq 4.4\ .\ 10^{-16}$
Další typy


TurboPascal - Extended (Real*10), Comp (Integer*8)
Fortran - Complex, Complex*16, Real*16


next up previous
Next: Šíření chyb ve výpočtech Up: Zaokrouhlovací chyby Previous: Zaokrouhlovací chyby
Jiri Limpouch
1999-03-01