[ KaMikaZza @ 15.05.2005. 09:28 ] @
HI,

da li ima neko ideju kako da binarni broj, recimo duzine 32 bit, prebacim u floating point number (u IEEE 754 standardu 32-Bit floating point numbers)?
Dakle ovako, recimo (uzeo sam bilo kakve brojke):

- imam u variabli 1001010100001110000100000
- to iznosi recimo 32,3452 (znaci ovo je ono sto trebam!)

Jos nesto: Znam da mora prvo da se rastavi u predznak|exponenta|mantisa ali nije mi jasno kod zareza - kako da njega nadjem, to jest kako u binarnom mogu znati gdje zarez stoji?!?!

thx
[ DreamsInDarkness @ 15.05.2005. 18:36 ] @

To mozes da uradis pomocu instrukcije FILD. Prebacuje signed int u float.

fild [adresa]

onda ti se rezultat ove operacije smesta u ST0 reg

e sad imas FSTP da skines rezultat sa ST0 i smestis u neku adresu (a usput i ocistis ST0 reg)

fstp [adresa2]

i u adresa2 ti se nalazi float

Nadam se da si na ovo mislio........

Pozdrav

[ KaMikaZza @ 15.05.2005. 21:27 ] @
Kao prvo zahvaljujem na odgovoru.

Medjutim, ja sam napravio gresku pri postavljanju pitanja.
Zaboravio sam da napomenem da ovo "konvertiranje" iz binarnog u float mora iskljucivo da se radi samo uz pomoci integer arithmetike. To je vishe matematicko racunjanje-pretvaranje binarnog broja u decimalni.

Fakticki moram da opisem kako to sam tip float radi na masini i da ti iz binarnog reda izbaci na ekran taj broj u vidu decimalnog.
Nadam se da ti je sada jasnije moje pitanje i da mi mozes pomoci u ovom problemu.

Hvala!
[ KaMikaZza @ 18.05.2005. 12:43 ] @
Evo linka:

http://babbage.cs.qc.edu/courses/cs341/IEEE-754.html

i unesite gore -12,46

Kada gore uneses broj, on ti ga dole izracuna u 32-bitnom binarnom broju ili u hexa-decimalnom. Meni je potrebno u drugom smjeru: iz binarnog u float, to jest, da mi izadje na kraju -12,46.