Wilson Bilkovich
12/9/2005 9:31:00 PM
This looks like an endianness issue. Check out what happens when you
reverse it:
puts foo.reverse.unpack("N")
"N" indicates Network byte order (big-endian), but it sounds like you
may want to use system byte-order, which is "L"
I don't have a Mac to test with, unfortunately. Check out page 603 in
the Pickaxe book, if you have it.
--Wilson.
On 12/9/05, Aaron Patterson <aaron_patterson@speakeasy.net> wrote:
> Hi! I'm having some troubles with unpack that I can't seem to figure
> out. My test program looks like this:
>
> foo = "\000\000\022\227"
> puts foo.unpack("N")
>
> On linux (ruby 1.8.3 (2005-09-21) [i386-linux]), the test program gives
> the following output:
>
> 4759
>
> Which is what I expect. However, on OS X (ruby 1.8.2 (2004-12-25)
> [powerpc-darwin8.0]), I get the following output:
>
> 2534539264
>
> I can't figure out if I'm doing something stupid, or if there is a
> problem with ruby. Thanks for the help!
>
> --Aaron
>
>
>