我想将一个整数编码为基数36,然后将其解码为基数10。编码步骤很简单:
12345.to_s(36)
=> "9ix"
现在我想把它解码成一个基数为10的整数。但这不管用:
"9ix".to_i(10)
=> 9
我该怎么写
def base36to10(b36)
# ?
end
以便
r = rand(100000)
base36to10(r.to_s(36)) == r
?
最佳答案
你不是从基10转换,而是从基36转换:
1.9.3p448 :001 > "9ix".to_i(36)
=> 12345
引自the docs:
返回将str解释为整数基(介于2和36之间)的结果。
也就是说,在基数之间转换数字不是很简单吗?在字符上迭代,乘法,加法。
关于ruby - 如何将整数从36转换为10?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19968750/