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