Just nu i M3-nätverket
Gå till innehåll

Från bytes till flyttal


zoltan hemlock

Rekommendera Poster

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]

Länk till kommentar
Dela på andra webbplatser

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.

 

 

Länk till kommentar
Dela på andra webbplatser

zoltan hemlock

Jag vill ha det gjort i Basic, så funktionen måste jag skriva själv. Det jag behöver är algoritmen på ren svenska. =)

 

Länk till kommentar
Dela på andra webbplatser

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]

Länk till kommentar
Dela på andra webbplatser

zoltan hemlock

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.

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...