【问题标题】:Hexa to decimal conversion in RubyRuby中的十六进制到十进制转换
【发布时间】:2023-04-01 03:03:01
【问题描述】:

我有 "\001\022" 作为 a 的值。我想要的十进制值是 274。

我尝试了以下功能。但我得到 ["0112"]

a.unpack("H*")  ==>  ["0112"]  

当我使用计算器将这个“0112”转换为十进制时,它给了我 274。我怎么能像 这使用 ruby​​ 方法。

谢谢

【问题讨论】:

    标签: ruby unpack hex


    【解决方案1】:

    您问题中的格式字符串:“H*”,用于“十六进制字符串(高半字节优先)”。因此,它将您的字符串解码为 4 位十六进制元素的数组。

    您需要不同的格式。

    试试这个,它将它解码为“16 位无符号网络(大端)字节顺序”整数:

    a.unpack("n") # => [274]
    

    有关可以在格式字符串中使用的字符的完整详细信息,请查看Ruby Documentation for String#unpack

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-05
      • 1970-01-01
      • 1970-01-01
      • 2011-02-04
      • 2019-05-10
      • 1970-01-01
      • 2018-07-26
      相关资源
      最近更新 更多