Prikaz podataka u računalu

Prikaz brojeva i znakova 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)