【问题标题】:How to convert base 10 to base X? [duplicate]如何将基数 10 转换为基数 X? [复制]
【发布时间】:2010-10-19 02:31:23
【问题描述】:

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

注意:我所说的复杂,是指 Python 初学者的复杂。我离熟练掌握这个程序还差得很远。

注意 2:我正在尝试在没有模块的情况下执行此操作。

【问题讨论】:

    标签: python


    【解决方案1】:

    如果你把数字值放在一个字符串中,那么你可以使用的基数很容易变得非常高。

    radixdigits = '0123456789ABCDEFGHI...'
    

    然后你可以用字符串的长度来做divmod()以获得当前数字,并用那个数字索引字符串。

    【讨论】:

      【解决方案2】:

      在不让我的程序变得异常复杂的情况下,我可以转换到的最高基数是多少?

      在 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-09
        • 2019-11-27
        • 1970-01-01
        • 2016-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-09
        相关资源
        最近更新 更多