我想编写一个程序,要求用户在基数10中输入一个数字,并输入他们想要转换的基数。如果不让我的程序变得非常复杂,我可以转换成最高的基数是多少?我正在考虑Base 9,因为在10(已经给出)之后,基地开始使用字母。我是对的吗?
注意:复杂的,我的意思是复杂的Python初学者。我对这个项目的熟练程度还很远。
注2:我试图在没有模块的情况下这样做。
答案 0 :(得分:2)
如果您将数字值放在一个字符串中,那么您可以使用的基础非常容易。
radixdigits = '0123456789ABCDEFGHI...'
然后您可以使用字符串的长度divmod()
来获取当前数字,并使用该数字索引字符串。
答案 1 :(得分:1)
如果不让我的程序变得非常复杂,我可以转换成最高的基数是多少?
在ASCII中,基础127.但是,由于大写/小写的东西看起来相似,并且不可打印的ASCII字符需要大量复杂的转义,因此难以阅读。
你最好将事情限制在36左右,因为你可以使用数字和字母,而不会产生任何混淆的歧义。
在Unicde中,基于65536或其他类似内容,具体取决于您要处理的Unicode字符数。
我在考虑Base 9,因为在10(已经给出)之后,基地开始使用字母。我是对的吗?
你是对的。
标准ASCII有9位数符号。你不是被迫使用字母,但使用字母很常见。
您可以使用许多既不是字母也不是数字的Unicode符号。
我试图在没有模块的情况下这样做。
这不是非常相关。
现在阅读有关基本转换的其他Stackoverflow问题。
以下是首发:Base 62 conversion
以下是搜索:https://stackoverflow.com/search?q=%5Bpython%5D+base+conversion
答案 2 :(得分:0)
这是Google Code Jam上的特色。几年前。您正在寻找名为Alien Numbers
的问题我建议您首先查看(以及上传的解决方案代码),如果这对您不起作用,请告诉我,我可以向您展示我的解决方案,我可以更清楚地解释
希望这有帮助