>>>>> "BRH" == Bryan R Harris <bryan_r_har...@raytheon.com> writes:
>> From: Uri Guttman >> >>>>>>>> "BM" == Bob McConnell <r...@cbord.com> writes: >>> BM> From: Bryan R Harris >>>>> >>>>> I need to convert a number like this: -3205.0569059 >>>>> ... into an 8-byte double (big and little endian), e.g. 4f 3e 52 >> 00 2a BM> bc 93 >>>>> d3 (I just made up those 8 byte values). >>>>> >>>>> Is this easy in perl? Are long and short ints easy as well? >>> BM> The sprintf() family is your friend. >>> >>> that will only generate text (hex and other formats). he needs pack >>> which does exactly what he wants. read perlpacktut for a tutorial on >>> pack/unpack and then perlfunc -f pack for the reference on it. >> >> That statement just confuses me. His initial value of -3205.0569059 is >> also text. It is the human readable representation of the number, and is >> not anything like what it looks like inside the computer. He just asked >> for a different format for that text. Why is sprintf not a reasonable >> way to do that? BRH> The 8 bytes is an IEEE 754-2008 formatted number -- see here for an BRH> explanation: BRH> http://en.wikipedia.org/wiki/Double_precision BRH> It's not just a simple hex of a decimal... You've got an exponent and a BRH> sign encoded in there too. BRH> I'm still reading the perlpacktut, but I'm hoping it'll get me to that. pack will do it. as i said, i am doing that very thing in Sort::Maker. it packs floats into strings for using in a string comparison for sorting. uri -- .signature_stem -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/