Ну, , как сказал Патрик , конвертирование в прошлое с использованием Array\#pack
не займет много времени.
irb> [99.0].pack('G').split('').map { |ds| ds[0] }
#=> [64, 88, 192, 0, 0, 0, 0, 0]
irb> _.map { |d| "%02x" % d }
#=> ["40", "58", "c0", "00", "00", "00", "00", "00"]
irb> [99.0].pack('E').split('').map { |ds| ds[0] }
#=> [0, 0, 0, 0, 0, 192, 88, 64]
irb> _.map { |d| "%02x" % d }
#=> ["00", "00", "00", "00", "00", "c0", "58", "40"]
Так что это зависит от того, хотите ли вы распаковать его с старшим байтом в нулевом индексе или младшим байтом в нулевом индексе:
E | Double-precision float, little-endian byte order
G | Double-precision float, network (big-endian) byte order