在Ruby 1.9.3中,你可以做到
"\x00\x01".unpack 'S' #=> 1 * 256 + 0 = 256, my machine use little endian by default
"\x00\x01".unpack 'S>' #=> 0 * 256 + 1 = 1
但Ruby 1.8.7并没有">" "<"注解。那么在1.8.7中,使用big endian解压缩的最佳方法是什么?
答案 0 :(得分:0)
str = "\x00\x01"
puts str.unpack 'S'
p str.reverse
puts str.reverse.unpack 'S'
--output:--
256
"\001\000"
1
答案 1 :(得分:0)
您可以将n
用于网络(大)字节序2字节值(N
表示4字节整数)和v
表示小字节2字节整数(V
表示4字节)。请参阅the docs。
"\x00\x01".unpack 'n'
# => [1]
"\x00\x01".unpack 'v'
# => [256]
如果可能的话,你真的应该考虑升级你的Ruby版本。