Professional Documents
Culture Documents
Razlomački dio
predznak Eksponent
Broj = 1.f·2E-127
Ako je prvi bit s lijeve strane 0 ( nula ), broj zapisan u registru je pozitivan, a
ako je taj bit 1, broj je negativan.
2.3.PRIMJER
Kao primjer pokazat ćemo pretvaranje broja 32.5 u binarni zapis u registru za realne
brojeve.
32.5 : 25 = 1.015625
32.5 = 1.015625 · 25
Sada znamo razlomački dio: 0.015625 i p = 5.
E = p + 127 = 5 + 127 = 132
Binarni zapis broja 32 je 10000100 i taj broj se zapisuje od 30. do 23. bita u registar
( E ).
Sada je potrebno broj 0.015625 pretvoriti u binarni.
0.015625 · 2 = 0.03125 0
0.03125 · 2 = 0.0625 0
0.0625 · 2 = 0.125 0
0.125 · 2 = 0.25 0
0.25 · 2 = 0.5 0
0.5 · 2 = 1 1
0 0
Algoritam u pseudo-jeziku:
Char binBroj[32]
predznak = 1
pot = 0
unijeti realni broj s tipkovnice
ako je broj manji od 0
predznak = (-1)
frac = broj * predznak
binBroj[0] = '1'
u suprotnom
frac = broj
binBroj[0] = '0'
ako je frac manji od 1
sve dok je frac manji od 1
frac *= 2.0
pot—
u suprotnom
sve dok je frac veći od 2
frac /= 2.0
pot++
E = pot + 127
za svaki i od 8 do 1
ako je E % 2 jednako 0
binBroj[i] = '0'
u suprotnom
binBroj[i] = '1'
E /= 2;
frac -= 1
za svaki i od 9 do 31
frac *= 2.0;
ako je frac >= 1
binBroj[i] = '1'
frac -= 1.0
else
binBroj[i] = '0'
ispisati na ekran " Realni dekadski broj %f u registru ima binarni zapis:\n " i broj
za svaki i od 0 do 32
ako je i == 1 ispisati " "
ako je i == 9 ispisati " "
ispisati binBroj[i]
Zadatak za zadaću:
Isti zadatak izvesti s funkcijom BinBr koja računa i vraća vrijednost binarnog zapisa
realnog broja u 32-bitnom registru.