如何将整数从基数36转换为基数10?

Mor*_*ori 3 ruby

我想将一个整数编码为基数36,然后将其解码为基数10.编码步骤很简单:

12345.to_s(36)
=> "9ix"
Run Code Online (Sandbox Code Playgroud)

现在我想将其解码回基数为10的整数.但这不起作用:

"9ix".to_i(10)
=> 9
Run Code Online (Sandbox Code Playgroud)

那我怎么写

def base36to10(b36)
  # ?
end
Run Code Online (Sandbox Code Playgroud)

以便

r = rand(100000)
base36to10(r.to_s(36)) == r
Run Code Online (Sandbox Code Playgroud)

Dav*_*ton 8

你没有从基数10转换,你从基数36转换:

   1.9.3p448 :001 > "9ix".to_i(36)
=> 12345
Run Code Online (Sandbox Code Playgroud)

文档转述:

返回将str解释为整数基数(2到36之间)的结果.

那说,基地之间的数字转换是不是微不足道的?迭代字符,乘法,加法.