在Ruby中将十六进制转换为十进制

时间:2018-03-07 10:55:05

标签: ruby

我有十六进制数字,我想将它们转换为十进制数字。例如,01 - > 1,09 - > 9,12-> 18。

我试过了:

01.unpack("n")

但失败了。

"01".unpack("n") # => [12337]

这不是我想要的。

你知道正确的答案吗?

1 个答案:

答案 0 :(得分:8)

String#to_i接受一个额外的参数,这是要使用的数字基数。十六进制是16的基数,因此以下内容适用于您:

"01".to_i(16)

只要该号码的前缀为Integer,就可以在其上调用0x函数:

Integer("0x01")