Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]6722[/thread]

IEEE 754 Hex to Float

Leser: 1


<< >> 4 Einträge, 1 Seite
Gast Gast
 2005-02-18 20:18
#51900 #51900
Hallo,

ich versuche mit pack und unpack zwischen hex und float umzurechnen (nach IEEE 754, 32 bit Genauigkeit), also aus hex "42c80000" soll "100" dezimal werden.
Ich krieg das einfach nicht hin!

in die andere Richtung geht das so:

($dec) = @ARGV;
print "dec: $dec \n";
my $out = sprintf "%x\n", unpack "L", pack "f", $dec;
print "return: $hex \n";

hier ein java-applet zur Kontrolle:
http://www.h-schmidt.net/FloatApplet/IEEE754.html

hat jemand eine Idee?

Martin
betterworld
 2005-02-18 21:19
#51901 #51901
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Wie waere es denn hiermit:
Code: (dl )
print unpack "f", pack "L", hex "42c80000";


Beachte aber, dass "f" bei pack und unpack immer das native Format fuer Fließkommazahlen ist, also je nach Maschine nicht unbedingt IEEE754.
ptk
 2005-02-18 21:19
#51902 #51902
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Mit
Code: (dl )
warn "Zurueck: ",  unpack "f", pack "L", hex($hex);

kriege ich die gleiche Zahl zurueck.
betterworld
 2005-02-18 21:22
#51903 #51903
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
ptk: Ich war schneller :-p
scnr
<< >> 4 Einträge, 1 Seite



View all threads created 2005-02-18 20:18.