可以通过从基数 10 进行基数转换来做到这一点吗?如果是这样,为了将生成的字符串的长度限制为最多 10 个字符,最好转换到哪个基础?
谢谢
十六进制将满足您的需求。
999999999999
十六进制中最大的 12 位数字e8d4a50fff
只有十个字符。
以 10 为底的最大 12 个字符的数字是 999 999 999 999。
ruby 中的一个小片段显示,您可以用来确保有 10 个字符的字符串的最小基数是基数 16,或十六进制:
1.9.3-p194 :044 > 999999999999.to_s(15)
=> "1b02b766469"
1.9.3-p194 :045 > 999999999999.to_s(15).length
=> 11
1.9.3-p194 :046 > 999999999999.to_s(16)
=> "e8d4a50fff"
1.9.3-p194 :047 > 999999999999.to_s(16).length
=> 10