[ 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.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.