char array umordnen
-
Hallo!
Das ist zwar eine etwas dumme Frage (fürchte ich), aber ich kommen einfach nicht darauf:ich habe ein char array, in dem eine Floatzahl steht (binär kodiert) und diese möchte ich in eine Datei schreiben, das Problem ist nur, ich muss die Byte Reihenfolge umkehren, das heißt, ich möchte mein alloziertes char array so umstellen, dass der letzte eintrag der erste ist und so weiter. das muss irgendwie mit einer schleife gehen, aber wie wähle ich die parameter.. ??
char *buffer= reinterpret_cast<char*>(&tData[i]); //tData[i] ist eine FloatZahl //hier muss ich jetzt die byte - Reihenfolge ändern vtkWriter.write(buffer,4);Vielen Dank für Eure Hilfe!
lg,
Iso
-
- reinterpret_cast in solchen sachen ist böse.
- was du da castest ist kein float sondern ein Zeiger auf Float
- gibts für solche umkehrungen Funktionen
- warum willst du das überhaupt machen? Gibt bestimmt ne bessere Lösung
-
ich kriege binäre daten aus einem anderen file, da drehe ich dann die byteReihenfolge um, damit ich die "richtigen" zahlen herausbekomme, dann rechne ich damit und dann muss ich die daten wieder binär schreiben, dass ist der schritt, den ich vorher aufgeschrieben habe. Damit aber die ganzen anderen Programme damit arbeiten können, muss ich die bytereihenfolge wieder umkehren, sonst kommt überall ein blödsinn raus..
lg,
Iso
-
-
@pumuckl: Wie willst du denn bitte sonst in die Datei im binary-mode schreiben?
-
(D)Evil schrieb:
@pumuckl: Wie willst du denn bitte sonst in die Datei im binary-mode schreiben?
gar nicht ! :p
Ich habe gerade eine 160GB-Platte für 49 Euro gekauft ... da weiß ich wirklich nicht mehr, wozu plattform- und compilerabhängige binary-Daten-Files noch gut sein sollen.
... und selbst, wenn man das zu brauchen meint, wüsste ich immer noch nicht, was gegen ein abstrahiertes binary-Format spräche.Gruß,
Simon2.
-
Isomorphismus schrieb:
Hallo!
Das ist zwar eine etwas dumme Frage (fürchte ich), aber ich kommen einfach nicht darauf:ich habe ein char array, in dem eine Floatzahl steht (binär kodiert) und diese möchte ich in eine Datei schreiben, das Problem ist nur, ich muss die Byte Reihenfolge umkehren, das heißt, ich möchte mein alloziertes char array so umstellen, dass der letzte eintrag der erste ist und so weiter. das muss irgendwie mit einer schleife gehen, aber wie wähle ich die parameter.. ??
char *buffer= reinterpret_cast<char*>(&tData[i]); //tData[i] ist eine FloatZahl //hier muss ich jetzt die byte - Reihenfolge ändern vtkWriter.write(buffer,4);Vielen Dank für Eure Hilfe!
lg,
IsoHi!
// Intrinsics Available on All Architectures - (_byteswap_ulong) //- Reverses the order of bytes in an integer. //- Required header <cstdlib> // z.B.: ... union x { unsigned long a; float b; }temp; temp.b = tData[i]; temp.a = _byteswap_ulong(temp.a); tkWriter.write(temp.b); ...