Ruby将64位IEEE 754十六进制转换为双精度

Ruby将64位IEEE 754十六进制转换为双精度,ruby,ieee-754,pack,unpack,Ruby,Ieee 754,Pack,Unpack,我需要将一个十六进制数据流从IMU输出到lat long和height值 数据以双精度十六进制字符串的形式输入,我需要将它们输出为十进制值 我尝试了几个打包和解包值,但最终除了编写自己的函数外,找不到解决方案 有没有办法翻译这个双精度64位十六进制字符串: "4044F33333333333" 小数点后: 41.900000000000000 使用打包和解包功能 有没有能够处理IEEE 754数字的库?是的,我只处理了转换的前一半 ["4044F33333333333"].pack('H16

我需要将一个十六进制数据流从IMU输出到lat long和height值

数据以双精度十六进制字符串的形式输入,我需要将它们输出为十进制值

我尝试了几个打包和解包值,但最终除了编写自己的函数外,找不到解决方案

有没有办法翻译这个双精度64位十六进制字符串:

"4044F33333333333"
小数点后:

41.900000000000000
使用打包和解包功能


有没有能够处理IEEE 754数字的库?

是的,我只处理了转换的前一半
["4044F33333333333"].pack('H16').unpack('G').first
=> 41.9

# broken down to steps, showing reversability
["4044F33333333333"].pack('H16')
=> "@D\xF333333"
"@D\xF333333".unpack('G')
=> [41.9]
[41.9].pack('G')
=> "@D\xF333333"
"@D\xF333333".unpack('H16')
=> ["4044f33333333333"]