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

时间:2013-11-14 03:05:53

标签: ruby

我想将一个整数编码为基数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

1 个答案:

答案 0 :(得分:8)

您没有从基数10转换,而是从基数36转换:

   1.9.3p448 :001 > "9ix".to_i(36)
=> 12345

the docs转发:

  

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

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