在Ruby中将十六进制转换为十进制
我有十六进制数,我想把它们转换成十进制数。例如,01->1,09->9,12->18 我试过:在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.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您应该接受此答案。