我注意到Java中基数的最大限制是36。 这是一个任意限制,还是Java有理由以这种方式限制基数?
答案 0 :(得分:10)
这是十进制数字(10)加上字母表中的字母数(26)。
如果允许37的基数,则必须选择一个新角色来代表第37位。虽然肯定会可能选择一些角色,但没有明显的选择。只是禁止更大的基数是有道理的。
答案 1 :(得分:1)
非常简单:26个字母+10个数字= 36个。
为了表示数字,传统上使用数字和拉丁字母。
答案 2 :(得分:1)
For completeness, I would add that there are two constants defined in JDK:
Character.MIN_RADIX
Character.MAX_RADIX
答案 3 :(得分:0)
如果输出必须是可读的,则基数限制是有意义的。 在各种情况下,输出不需要是可读的。 因此,在这种情况下,更高的限制将有所帮助。 而java语言基数限制是java的弱点。
答案 4 :(得分:0)
您可以使用RFC 4648和RFC 2045中指定的Base64
编码方案。
只需根据需要生成int int的字节表示,以与大多数实现Base64的库兼容。