python中怎样设计程序将一个十进制数转化为任意进制(2-16进制)的数?并输出(带有A,B,C,D,E,F之类的

2024-11-28 17:20:30
推荐回答(1个)
回答1:

根据一般方法,N进制转10进制使用位权展开法,10进制转N进制使用求余数法。

就是不断用待转换数除以N然后求余数,最后把所有余数倒着放一起。

例子:

将24转换为2进制:

原数 进制 余数


24  % 2 -> 0

12  % 2 -> 0

6    % 2 -> 0

3    % 2 -> 1

1    % 2 -> 1

从下往上看:(11000)2,就是24的二进制

所以……上代码。


letters = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'  # 从0~10~Z的字母表,最高支持36进制

num = 82493216  # 要转换的数

sy = 13  # 要转换到的进制

li = []  # 用来保存求余数后的值

while num/sy>0:  # 如果num/sy大于0,即还没有转换完

    li.append(num%sy)  # 存储一个余数

    num //= sy  # 除掉

li.reverse()  # 倒转

for x in li:

    print(letters[x], end="")  # 输出对应的字母,不换行