Umwandlung von 4 Bytes in 1 Float ?
-
Guten Morgen C/C++ Forum,
ich habe ein Anliegen zur Umwandlung von bytes in float, d.h. ich bekomme von einem Messtechnik-Computer (per socket connection, client/server) Messdaten im nachfolgenden byte Format (so steht es in der zugehörigen Beschreibung),
1. byte => FRAC-L
2. byte => FRAC-M
3. byte => FRAC-H
4. byte => SGN+EXPda meine Programmierung "sozusagen Datenmüll erzeugt" ist mein Anliegen, ob mir jemand eine korrekte Umwandlung
der vorstehenden 4 bytes in 1 float oder eine entsprechend vorhandene Funktion
empfehlen kann,mit freundlichen Grüssen
ZZR-1100
-
hm... wär da nicht ein union angebracht?
union Test { float zahl; //sizeof(float) == 4 char bytes[4]; }; Test t; t.bytes[0] = FRAC-L; t.bytes[1] = FRAC-M; t.bytes[2] = FRAC-H; t.bytes[3] = SGN+EXP; std::cout << t.zahl << std::endl;
-
Vielen Dank "zwutz" !!!
Es klappt wirklich hervorragend, ich muss halt nur die bytes nicht von 1..4 einlesen sondern von 4..1, aber das hängt ja mit der byte-Reihenfolge zusammen daweil der Messtechnik-Computer ein Microsoft-PC ist und der Auswerte-Computer eine Unix-Workststion, wie dem auch sei es klappt wirklich hervorragend,
nochmals Vielen Dank
ZZR-1100