Numeričke pogreške
Nemogućnost korištenja svih bita kod računanja
Primjer: 0.000110 + 0.990010
0.000110 : (1.)101000110110111000101112 * 2-14
0.990010 : (1.)111110101110000101000112 * 2-1
Kod zbrajanje, binarne točke moraju biti poravnate:
.000000000000011010001101 * 20 Samo 11 od 24 bita!
+.111111010111000010100011 * 20
.111111010111011100110000 * 20 = 0,990099906921410
Realni brojevi dvostruke točnosti
Deklaracija u programskom jeziku C: double
63 62 52 51 0
P Karakteristika (11 bita) Mantisa
P
|
predznak ( P=1 negativan, P=0 pozitivan)
|
Karakteristika
|
binarni eksponent + 1023 (11 bita)
|
Mantisa
|
normalizirana (52+1 bit).
|
Raspon:
K [0,2047].
BE = K - 1023
BE [-1022,1023]
Specijalni slučajevi: K=0 i K=2047
Kada je K = 0 i svi bitovi mantise nula radi se o broju nula
Kada je K = 0 i postoje binarne frakcije u mantisi tada je to denormalizirani broj, tj. više ne postoji skriveni bit
Kada je K = 2047 i svi bitovi mantise nula radi se o prikazu +∞ ili -∞ ovisno o predznaku P
Kada je K = 2047 i postoje binarne frakcije u mantisi tada se ne radi o prikazu broja (Nan)
Najmanji pozitivni broj različit od nule koji se može prikazati je:
0.0000 ...0012 * 2-1022 što je 4.9406 * 10-324
a najveći je:
1.1111.....1111112 * 21023 21024 = 1.797693134862316*10308
Točnost: 53 binarne znamenke
253 10x 53 log 2 x log 10 x 53 log 2 15.95458977019
tj. približno 16 prvih važećih točnih znamenki.
Postoji još i long double, međutim, njegova veličina ovisi o platformi, pa se tako mogu naći implementacije u kojima je njegova veličina 64,80,96 ili 128 bita. ANSI standard propisuje da nije manji od double broja. Primjer raspodjele ako je njegova veličina 80 bita:
long double 80 bita
Karakteristika: 15 bita
Binarni eksponent: Karakteristika – 16383
Realne konstante
1. 2.34 9e-8 8.345e+25 double
2f 2.34F -1.34e5f float
1.L 2.34L -2.5e-37L long double
|