我有 "\001\022"
一个值。我想要的十进制值是 274。
我尝试了以下功能。但我得到 ["0112"]
a.unpack("H*") ==> ["0112"]
当我使用计算器将此“0112”转换为十进制时,它给了我 274。我怎样才能使用 ruby 方法得到这样的结果。
谢谢
您问题中的格式字符串:“H*”,用于“十六进制字符串(高半字节优先)”。因此,它将您的字符串解码为 4 位十六进制元素的数组。
你需要不同的格式。
试试这个,它将它解码为“16 位无符号网络(大端)字节顺序”整数:
a.unpack("n") # => [274]
有关可以在格式字符串中使用的字符的完整详细信息,请查看String#unpack 的 Ruby 文档。