Hallo zusammen
ich möchte mir aus 4 Byte eine Floatzahl zusammenbauen,
was aber nicht so recht funktionieren will.
Dazu habe ich folgendes gemacht:
Für die Werte (00, 00, 65, -64) erhalte ich 16832 (soll aber 24),
für die Werte (00, 00, -63, 32) erhalte ich 49440 (soll aber -10),
für die Werte (00, 00, 67, 2) erhalte ich 17154 (soll aber 130).
Wenn ich zum Testen eine fertige Software verwende, wo ich die Darstellung wählen kann,
dann bekomme ich bei der Auswahl "long AB CD" meine falschen Werte angezeigt.
Wähle ich "float CD AB", dann bekomme ich die richtigen Werte (soll) angezeigt.
Muss ich das noch mal wandeln, oder mache ich den Fehler schon beim zusammenstellen ?
Habe alle Varianten versucht.. passt nix.. Hat jemand einen Tip ?
Gruß, stehohrhase
ich möchte mir aus 4 Byte eine Floatzahl zusammenbauen,
was aber nicht so recht funktionieren will.
Dazu habe ich folgendes gemacht:
Java:
float f = ((ibuf[0]& 0x00FF) << 24) + ((ibuf[1]& 0x00FF) << 16) + ((ibuf[2]& 0x00FF) << 8) + (ibuf[3]& 0x00FF);
System.out.println(f);
Für die Werte (00, 00, 65, -64) erhalte ich 16832 (soll aber 24),
für die Werte (00, 00, -63, 32) erhalte ich 49440 (soll aber -10),
für die Werte (00, 00, 67, 2) erhalte ich 17154 (soll aber 130).
Wenn ich zum Testen eine fertige Software verwende, wo ich die Darstellung wählen kann,
dann bekomme ich bei der Auswahl "long AB CD" meine falschen Werte angezeigt.
Wähle ich "float CD AB", dann bekomme ich die richtigen Werte (soll) angezeigt.
Muss ich das noch mal wandeln, oder mache ich den Fehler schon beim zusammenstellen ?
Habe alle Varianten versucht.. passt nix.. Hat jemand einen Tip ?
Gruß, stehohrhase
Zuletzt bearbeitet: