From: Matthew Moss Date: 2006-01-26T15:21:44+09:00 Subject: String.unpack endianess issue? In irb 0.9 (ruby 1.8.2) in cygwin/WindowsXP: > a = [0, 0, 0, 6] => [0, 0, 0, 6] > x = a.pack("C*") => "\000\000\000\006" > x.unpack("I") => [100663296] > x.unpack("V") => [100663296] I would have though that at least one of "I" or "V" in the unpack call would have given me the correct answer, 6. I'm reading this data out of a binary file, stored in big-endian, but neither handles this. I managed to get the right answer by doing: x.unpack("C*").reverse.pack("C*").unpack("I") But that seems rather silly. So I guess I'm asking: 1. Is unpack broken, or is there a big-endian option I missed? 2. Is there a more generic module/library for reading binary files? 3. Is there an existing modules/lib for reading MIDI files? thanks...