Prikaz podataka u računalu
4. Prikaz relalnih brojeva
Realni brojevi sastoje se od dva dijela odvojena točkom - cjelobrojnog (ispred decimalne točke) i decimalnog (iza decimalne točke).
U svakodnevnom životu realne brojeve zapisujemo u obliku kojeg nazivamo zapis brojeva s fiksnom točkom. Tako su zapisani npr. brojevi 312.422, 14.56, 36532718.31. Takav zapis nije prikladan za zapisivanje jako velikih ili jako malih brojeva, pa se oni zapisuju u tzv. eksponencijalnom zapisu (npr. 3.12422*102).
Broj zapisan u eksponencijalnom obliku sastoji se od normalizirane mantise (ispred decimalne točke nalazi se samo jedna znamenka) i eksponenta.
U prethodnom primjeru normalizirana mantisa je 3.12422, a eksponent je 2.
Na sličan način zapisuju se realni brojevi i u računalu. Danas se koristi nekoliko standarda, a jedan od njih je IEEE 754 standard (ili norma).
Kako zapisujemo broj prema IEEE 754 notaciji?
- Odredimo predznak - 0 za pozitivne, a 1 za negativne brojeve
- Realan broj najprije pretvorimo u binarni (npr. 12.5 = 1100.1(2)).
- Dobiveni binarni broj zapišemo u eksponencijalnom obliku. Pošto se ispred decimalne točke može nalaziti samo jedinica, ona se u računalu ne pohranjuje i naziva se skrivenim bitom (1.1001*23 => mantisa je 1001, a 3 je binarni eksponent - binarni jer je baza 2)
- Binarni eksponent uvećamo za 127 (da izbjegnemo prikaz negativnog eksponenta) i tako dobiveni broj pretvorimo u binarni (3+127=130=10000010(2)).
- Popunimo 32 bita po sljedećem principu: Prvi bit je predznak (0 ili 1), sljedećih osam bitova popunimo sa binarnim eksponentom uvećanim za 127, a ostalih 23 bita popunimo s mantisom (dio iza decimalne točke). Ako mantisa sadrži manje od 23 bita dopunimo je s nulama (01000001010010000000000000000000).
Brojeve u IEEE 754 standardu često zbog kraćeg zapisa prikazujemo u heksadekadskom brojevnom sustavu.
Prikaz broja prema IEEE standardu u heksadekadskom brojevnom sustavu na primjeru dekadskog broja 5.25. pogledajte ovdje.
Zadatak 1:
Prikaži realan broj 9.6875(10) u heksadekadskom obliku prema IEEE 754 standardu jednostruke preciznosti!
Primjer:
Koja je vrijednost prikazana u 32-bitnom registru postavljenom na standardnu točnost?
10111101010000000000000000000000(2)
Predznak je 1 => broj je negativan
Binarni eksponent uvećan za 127 = 01111010(2) = 122
Binarni eksponent = 122 - 127 = -5
Mantisa: 1.1 => traženi broj je -1.1*2-5 = -0.000011(2) = -0.046875
Zadatak 2:
Koje su vrijednosti prikazane u 32-bitnom registru, postavljenom na standardnu točnost?
-
C1F00000(16)
-
3A800000(16)
-
41910000(16)