Son of Sound Postat Ianuarie 21, 2010 Partajează Postat Ianuarie 21, 2010 Daca aveti cunostiinte in MATLAB, as avea nevoie de "ceva" ajutor in rezolvarea unei probleme care suna cam asa: Ce numere reale familiare sunt aproximate prin numerele in virgula flotantapentru care cu format hex se afiseaza urmatoarele valori:40590000000000003f847ae147ae147b3fe921fb54442d18ps. nu vreau rezolvarea " mura-n gura" ci mici indicii despre cum ar trebuii abordata problemastima Link spre comentariu
Son of Sound Postat Ianuarie 22, 2010 Autor Partajează Postat Ianuarie 22, 2010 nu are nimeni cunostine in MATLAB si un pic de timp liber ??? Link spre comentariu
EmyRulz Postat Ianuarie 22, 2010 Partajează Postat Ianuarie 22, 2010 In primul rand Matlabul nu are nicio legatura cu transformarea numerelor dintr-un format in altul(adica nu e diferita in matlab fata de alte limbaje).In al doilea rand, nu vad unde e virgula si enuntul problemei e foarte ambiguu. Link spre comentariu
Son of Sound Postat Ianuarie 22, 2010 Autor Partajează Postat Ianuarie 22, 2010 Enuntul problemei este exact cum l-am scris ...- daca scriu in matlab comanda "format hex" dau enter si dupa introduc numarul 0.01 dupa care dau enter imi apare ca raspuns " ans = 3f847ae147ae147b" , deci unul dintre numerele reale este 0.01.- ar mai trebuii sa fie inca 2 numere pentru care sa-mi dea celelalte raspunsuri- faza ii ca nu stiu cum le-as putea afla ... Link spre comentariu
cirip Postat Ianuarie 22, 2010 Partajează Postat Ianuarie 22, 2010 Intr-adevar, formularea problemei este incompleta si provine din neintelegerea reprezentarii in virgula mobila. Reprezentarea asta este o simpla conventie si Matlabul nu are nici o legatura, decat aceea ca te ajuta sa faci conversiile, dar numai atat. Poti face conversiile si cu creionul pe hartie, daca intelegi despre ce e vorba. Citeste putin la linkul asta: http://steve.hollasch.net/cgindex/coding/ieeefloat.html Dupa aia, daca tot ai nelamuriri, intreaba mai la obiect. Asa cum e pusa, intrebarea e prea generala si deruteaza, ptr ca in realitatea nu e direct legata de matlab. Info suplimentare cautand pe gogu "floating point representation". Numerele tale sunt double, deci te uiti la reprezentarea pe 64 de biti. Link spre comentariu
Son of Sound Postat Ianuarie 22, 2010 Autor Partajează Postat Ianuarie 22, 2010 * pana la urma ma gandesc ca rezolvarea problemei se rezuma la gasirea celor 3 numere care in format hexazecimal sa fie egale cu 4059000000000000, 3f847ae147ae147b respectiv 3fe921fb54442d18* cum am zis si mai sus am gasit ca la 0.01 ii corespunde in hexazecimal 3f847ae147ae147b ( nu ma intrebati cum l-am gasit )* s-ar putea " convertii " numerele din hexazecimal in real printr-o serie de calcule sau cumva ???ps. sper sa nu vorbsc prostii ... Link spre comentariu
cirip Postat Ianuarie 22, 2010 Partajează Postat Ianuarie 22, 2010 Hai ca m-ai facut curios. Uite ce mi-a dat mie la una dintre valori folosind explicatiile de la wiki: http://en.wikipedia.org/wiki/IEEE_754-1985[attachment=0]hex_to_double.GIF[/attachment] Nu garantez ca e corect. Te rog sa verifici cu matlabul si sa-mi spui si mie. Link spre comentariu
Son of Sound Postat Ianuarie 23, 2010 Autor Partajează Postat Ianuarie 23, 2010 * in primu rand mersi pentru ajutor ....* am introdus numaru in matlab si rezultatul ii cel din poza * am mai aflat ca la 100 ii corespunde 4059000000000000 Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum