我想将一个整数编码为基数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)
?
你没有从基数10转换,你从基数36转换:
1.9.3p448 :001 > "9ix".to_i(36)
=> 12345
Run Code Online (Sandbox Code Playgroud)
从文档转述:
返回将str解释为整数基数(2到36之间)的结果.
那说,基地之间的数字转换是不是微不足道的?迭代字符,乘法,加法.
| 归档时间: |
|
| 查看次数: |
1777 次 |
| 最近记录: |