Ruby中的十六进制到十进制转换



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

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

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

当我用计算器把这个"0112"转换成十进制时,它给了我274。我怎么能像这使用了ruby方法。

感谢

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

你需要一个不同的格式。

试试这个,它将其解码为"16位无符号,网络(big-endian)字节顺序"整数:

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

有关可以在格式化字符串中使用哪些字符的完整详细信息,请查看Ruby文档中的string#unpack。

最新更新