Python - 基础10到基础X转换

时间:2010-10-19 02:31:23

标签: python

我想编写一个程序,要求用户在基数10中输入一个数字,并输入他们想要转换的基数。如果不让我的程序变得非常复杂,我可以转换成最高的基数是多少?我正在考虑Base 9,因为在10(已经给出)之后,基地开始使用字母。我是对的吗?

注意:复杂的,我的意思是复杂的Python初学者。我对这个项目的熟练程度还很远。

注2:我试图在没有模块的情况下这样做。

3 个答案:

答案 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

的问题

我建议您首先查看(以及上传的解决方案代码),如果这对您不起作用,请告诉我,我可以向您展示我的解决方案,我可以更清楚地解释

希望这有帮助