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

10-11 18:38