Представление является стандартом IEEE и не должно изменяться.
https://msdn.microsoft.com/en-us/library/system.double (v=vs.110) .aspx
Двойной тип выполняет IEC 60559:1989 (IEEE 754) стандарт для двоичной арифметики с плавающей точкой.
РЕДАКТИРОВАНИЕ: причиной, почему десятичное число имеет getBits и дважды не делает, являются те значащие цифры консервов десятичного числа. 3.0000 м == 3.00 м, но экспоненты/мантиссы на самом деле отличаются. Я думаю, плавает/удваивает, исключительно представлены.
@sp.write [32.chr, 7.chr, 8.chr, 65.chr].to_s
@sp.write ["\x01\x09\x04\x00", 'f', "\xff\xcc\x33"].to_s
Но мы можем получить больше удовольствия, чем это (мухахаха ...)
class Array
def chr
self.map { |e| e.chr }
end
end
Итак:
>> [1,2,3,65,66,67].chr
=> ["\001", "\002", "\003", "A", "B", "C"]
>> [1,2,3,65,66,67].chr.to_s
=> "\001\002\003ABC"