Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Ruby中将十六进制转换为十进制_Ruby - Fatal编程技术网

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

在Ruby中将十六进制转换为十进制,ruby,Ruby,我有十六进制数,我想把它们转换成十进制数。例如,01->1,09->9,12->18 我试过: 01.unpack("n") 但这失败了 "01".unpack("n") # => [12337] 那不是我想要的 您知道正确答案吗?String#to_i接受一个额外的参数,该参数是要使用的基数。十六进制是以16为基数的,因此以下内容适用于您: "01".to_i(16) 只要该号码有0x前缀,对其调用Integer函数也可以: Integer("0x01") 无论是十六进制还是十进

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

我试过:

01.unpack("n")
但这失败了

"01".unpack("n") # => [12337]
那不是我想要的

您知道正确答案吗?

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

"01".to_i(16)
只要该号码有
0x
前缀,对其调用
Integer
函数也可以:

Integer("0x01")

无论是十六进制还是十进制,数字都是数字。没有区别。你的意思是有用十六进制表示数字的字符串吗?重要区别:
“g”。to_i(16)
是0,
整数(“g”,16)
是一个参数错误。谢谢,完美的解决方案。@user2909180没问题。请通过单击旁边的绿色复选标记接受此答案,使问题显示为已解决。@user2909180您应该接受此答案。