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



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

我试过了:

01.unpack("n")

但这失败了。

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

这不是我想要的。

你知道正确答案吗?

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

"01".to_i(16)

在其上调用 Integer 函数也可以工作,只要该数字具有0x前缀:

Integer("0x01")

最新更新