【问题标题】:Ruby convert 64 bit IEEE 754 hexadecimal to doubleRuby 将 64 位 IEEE 754 十六进制转换为双精度
【发布时间】:2013-04-11 17:03:40
【问题描述】:

我需要将来自 IMU 的十六进制数据流输出为纬度和高度值。

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

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

有什么方法可以翻译这个双精度 64 位十六进制字符串:

"4044F33333333333"

到这个小数点:

41.900000000000000

使用打包和解包功能?

是否有任何库能够处理 IEEE 754 数字?

【问题讨论】:

    标签: ruby ieee-754 pack unpack


    【解决方案1】:
    ["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"]
    

    【讨论】:

    • 对,我只处理了转换的前半部分
    猜你喜欢
    • 2011-09-18
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    • 2021-04-23
    • 1970-01-01
    相关资源
    最近更新 更多