Tipovi podataka - float
Binarni razlomci
Racionalni broj q može se zapisati:
Taj zapis je neefektivan jer ne možemo prikazati puno dekadskih brojeva.
Rješenje! float
Float - znanstveni zapis
Tvori se od 3 dijela:
- bit predznaka
- eksponent
- mantisa
Za broj -0.5 možemo zapisati bazom 2 kao: -0.1 ili
Tj. bit predznaka biti će 1 za negativan broj.
A bitovi exponenta biti će broj 127 - bitovi exponenta (kako bi mogli prikazati pozitivne i negativne eksponentet = 01111110)
Raspon exponenata je .
Mantisa će biti 1.00000... zato što se prva jedinica ne piše.
Tako će se broj -0.5 zapisati
| Bit predznaka | Eksponent | Mantisa |
|---|---|---|
| 1 | 01111110 | 00000000000000000000000 |
Isti broj zapisan heksadekadski je
Primjeri
- 2.0
- -2.0
- 4
- 0.75
- 1
Posebni slučajevi
Prikaz 0: sve 0
| Bit predznaka | Eksponent | Mantisa | Vrijednost |
|---|---|---|---|
| 0 | 00000000 | 00000000000000000000000 | +0 |
| 1 | 00000000 | 00000000000000000000000 | -0 |
Denormalizirani broj:
- Exponent je 0, a u mantisi se nalazi nešto.
- Tretira se kao mantisa(bez jedinice na početku) *
Beskonačno
| Bit predznaka | Eksponent | Mantisa | Vrijednost |
|---|---|---|---|
| 0 | 11111111 | 00000000000000000000000 | |
| 1 | 11111111 | 00000000000000000000000 |
NaN
- Karakreristika kao za beskonačnost ali ima nešto u mantisi.
| Bit predznaka | Eksponent | Mantisa | Vrijednost |
|---|---|---|---|
| 0 | 11111111 | 10000000000000000000000 | NaN |
Note
U float stane 1.95% unsigned int brojeva.
Pogreške pri prikazu brojeva
Najveća moguća relativna pogreška ovisi o broju bitova mantise
- Za IEEE 754 standard preciznosi
Za neki broj x progreška će biti:
Za praćenje novca ili druge primjene gdje je preciznost bitna sve brojeve se može pomnožiti sa 100 (za novce) i spremiti u int.
Tipovi podataka - double
Tvori se od 64bita:
| Bit predznaka | Karakteristika | Mantisa |
|---|---|---|
| 1 bitova | 11 bitova | 52 bitova |
Tolerancija
Kako bi se pogreške u pohranjivanju broja minimizirale, dodaje se mala vrijednost (tolerancija) u čijem se rasponu rješenje provjerava.