如何将十进制转换为X进制?

1 投票
2 回答
8922 浏览
提问于 2025-04-16 05:42

我想写一个程序,让用户输入一个十进制的数字,然后输入他们想转换成的进制。请问我能转换到的最高进制是多少,才不会让我的程序变得特别复杂?我在想9进制,因为在10进制之后,进制就开始用字母了。我这样想对吗?

注意:我说的复杂,是指对一个Python初学者来说复杂。我现在的编程水平还很低。

注意2:我想在不使用模块的情况下完成这个。

2 个回答

1

我可以转换到的最高进制是多少,而不会让我的程序变得非常复杂?

在ASCII中,最高是127进制。不过,这样会很难阅读,因为大写字母和小写字母看起来很相似,而且一些不可打印的ASCII字符需要很多复杂的转义处理。

最好把范围限制在大约36进制,因为这样可以使用数字和字母,没有什么混淆的地方。

在Unicode中,可以达到65536进制,具体取决于你想处理多少个Unicode字符。

我在考虑9进制,因为在10之后(10已经给出),进制开始使用字母。我这样想对吗?

你说得有点道理。

标准ASCII有9个数字符号。你并不一定要使用字母,但使用字母是很常见的。

你还可以使用很多既不是字母也不是数字的Unicode符号。

我想在不使用模块的情况下做到这一点。

这并不是特别相关。

现在可以看看其他关于进制转换的StackOverflow问题。

这里有个入门链接:62进制转换

这是搜索链接:https://stackoverflow.com/search?q=%5Bpython%5D+base+conversion

2

如果你把数字放在一个字符串里,那么你可以使用的进制就会很快变得很高。

radixdigits = '0123456789ABCDEFGHI...'

然后你可以用字符串的长度来做divmod(),这样就能得到当前的数字,并用这个数字去查找字符串中的内容。

撰写回答