【发布时间】:2010-10-19 02:31:23
【问题描述】:
我想编写一个程序,要求用户输入一个以 10 为底的数字,并输入他们想要转换为的底数。在不让我的程序变得异常复杂的情况下,我可以转换到的最高基数是多少?我在想 Base 9,因为在 10(已经给出)之后,基地开始使用字母。我说的对吗?
注意:我所说的复杂,是指 Python 初学者的复杂。我离熟练掌握这个程序还差得很远。
注意 2:我正在尝试在没有模块的情况下执行此操作。
【问题讨论】:
标签: python
我想编写一个程序,要求用户输入一个以 10 为底的数字,并输入他们想要转换为的底数。在不让我的程序变得异常复杂的情况下,我可以转换到的最高基数是多少?我在想 Base 9,因为在 10(已经给出)之后,基地开始使用字母。我说的对吗?
注意:我所说的复杂,是指 Python 初学者的复杂。我离熟练掌握这个程序还差得很远。
注意 2:我正在尝试在没有模块的情况下执行此操作。
【问题讨论】:
标签: python
如果你把数字值放在一个字符串中,那么你可以使用的基数很容易变得非常高。
radixdigits = '0123456789ABCDEFGHI...'
然后你可以用字符串的长度来做divmod()以获得当前数字,并用那个数字索引字符串。
【讨论】:
在不让我的程序变得异常复杂的情况下,我可以转换到的最高基数是多少?
在 ASCII 中,以 127 为基数。但是,由于大写/小写看起来相似,而且不可打印的 ASCII 字符需要大量复杂的转义,因此很难阅读。
您最好将内容限制在大约 36 位,因为您可以使用数字和字母而不会产生任何令人困惑的歧义。
在 Unicde 中,基数为 65536 或类似,取决于您要处理多少个 Unicode 字符。
我在考虑 Base 9,因为在 10(已经给出)之后,基地开始使用字母。我说的对吗?
你说的有点对。
标准 ASCII 有 9 位符号。不必强制使用字母,但使用字母很常见。
您可以使用许多既不是字母也不是数字的 Unicode 符号。
我正在尝试不使用模块。
这不是很相关。
现在阅读有关 Base Conversion 的其他 Stackoverflow 问题。
这是一个首发:Base 62 conversion
这里是搜索:https://stackoverflow.com/search?q=%5Bpython%5D+base+conversion
【讨论】: