zoltan hemlock Posted December 4, 2004 Share Posted December 4, 2004 Har någon en fin funktion för att förvandla t.ex 4 eller 8 bytes till ett flyttal och tvärtom? Link to comment Share on other sites More sharing options...
Anjuna Moon Posted December 4, 2004 Share Posted December 4, 2004 Oj, det var många år sedan man gjorde det manuellt. Flyttal beskrivs på formen M*R^E, där jag har för mig att det är M (mantissan) och E (exponenten) som lagras. R är basen man utgår ifrån (typ 2 eller 10) Noggrannheten får man när man bestämmer hur många bytes man tilldelar mantissan, och hur stora tal du kan ha bestäms av dito för exponenten. Tillägg: Vad menar du med att du vill konvertera "4 bytes" till ett flyttal? Du nämner inte datatypen som dessa bytes representererar, men jag gissar att du menar ett heltal? [inlägget ändrat 2004-12-04 11:38:21 av Anjuna Moon] Link to comment Share on other sites More sharing options...
manner Posted December 4, 2004 Share Posted December 4, 2004 Om jag har förstått frågan korrekt vill du omvandla ett antal bitar till ett flyttal och du vill göra detta bitvis. Hur man gör detta är klart språkberoende men i t.ex. C++ kan du använda reinterpret_cast som finns i std. Link to comment Share on other sites More sharing options...
zoltan hemlock Posted December 4, 2004 Author Share Posted December 4, 2004 Jepp, jag behöver räkna om 4 bytes till ett heltal, och vice versa Link to comment Share on other sites More sharing options...
zoltan hemlock Posted December 4, 2004 Author Share Posted December 4, 2004 Jag vill ha det gjort i Basic, så funktionen måste jag skriva själv. Det jag behöver är algoritmen på ren svenska. =) Link to comment Share on other sites More sharing options...
Anjuna Moon Posted December 4, 2004 Share Posted December 4, 2004 jag behöver räkna om 4 bytes till ett heltal, och vice versa Men du säger fortfarande inte vilket format du har de 4 bytes:en i (samt att de nu ska konverteras till heltal och inte flyttal som du sa först) Vad representerar dina 4 bytes? Eller är du kanske bara ute efter hur du ändrar representationen av ett heltal? Ex.: 0 0 255 255 <->65535 Isåfall har du exempel här som visar algoritmen: [log] dim a(4) ' a(1)=LSB, a(4)=MSB, visa heltalsrepresentationen a(1)=255:a(2)=255:a(3)=0:a(4)=0 sum=0 For i=1 To 4 sum=sum OR a(i)*256^(i-1) Next ' Tillbaka till internrepresentation sum=45345 For i=1 To 8 a(i)=sum AND 255 sum=int(sum/256) Next [/log] EDIT: Hursomhelst måste jag iväg nu tyvärr ... [inlägget ändrat 2004-12-04 14:04:05 av Anjuna Moon] [inlägget ändrat 2004-12-04 14:04:49 av Anjuna Moon] Link to comment Share on other sites More sharing options...
zoltan hemlock Posted December 4, 2004 Author Share Posted December 4, 2004 Sorry, glöm det där med heltal... Jag behöver exempelvis lagra talet -3.14159 i 4 bytes. Det finns ju en standard som säger HUR man ska lagra det. Vilka bitar som representerar vad etc. Detsamma gäller när det är 8 bytes. Vad jag förstår så finns det 2 varianter av algoritmen beroende på storlek eller precision. Link to comment Share on other sites More sharing options...
zerblat Posted December 4, 2004 Share Posted December 4, 2004 http://en.wikipedia.org/wiki/IEEE_754 Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.