При работе с двоичными данными вы должны быть уверены, что открываете файл в двоичном режиме, если вы работаете в Windows. Это касается как чтения, так и письма.
open(filename, "rb") do |file|
num = file.read(2).unpack("S")
puts num
end
Могут также быть проблемы с кодировкой «endian» в зависимости от исходной платформы. Например, компьютеры на базе PowerPC, которые включают старые системы Mac, серверы IBM Power, кластеры PS3 или серверы Sun Sparc.
Можете ли вы опубликовать пример того, как это "меньше"? Обычно в данных есть очевидная закономерность.
Например, если вы хотите 0x1234, но получаете 0x3412, это проблема с порядком байтов.