little big endian Problem
-
hi,
ich möchte auf windows einen UnixFile lesen in dem ein float (4 byte) steht:
Beispiel Hexdump der Datei:
.... 1234 5678 ...read mit float klappt nicht!
read 4 bytes char ergibt:
7856 3421wie bekomme ich dieses charFeld aber nun nach float?
jemand eine Iddee
ts
-
-
Wenn du "klappt nicht" noch ein wenig präzisierst, brauchen wir vielleicht das "charFeld" gar nicht.
-
hi,
erstmal danke. war nur BeispielHack, da ich mein Programm erst wieder morgen "zu Gesicht" bekomme werde ich dann nochmal präziser.
-
hi,
so nun nochmal präziser:
hex auszug aus unixDatei:
... 4348 0000 ....ist float 200.00 auf Unix.
auslesen mit:
float laenge;
fread(&laenge, sizeof(float),1 fp)ergibt auf PC 2.5e-041
??
-
int temp; //setzt voraus int==32bit. sonst entsprechend ändern. fread(&temp, sizeof(int), 1, fp); temp = ntohl(temp); float laenge = *((float*) &temp);
-
heissen Dank scrontch!
funzt einwandfrei!
Unix = Pc = 200.0thanx