进制转换
- 将十进制转换成其他进制
- 进制转换原理:计算机基础进制转换(二进制、八进制、十进制、十六进制)
- 算法原理:利用栈后进先出的特点,将每次的余数作为字符串放入栈中,除完后再依次出栈相连
- 难度:★★
- 易错点:转换成十六进制时大于10的部分要特殊处理
- 代码示例:
# 十进制转换为其他进制
def ten_change(num, scale): # num为传入的十进制数字,scale为要转换成的进制
zhan = list() # 创建一个栈
changeNum = '' # 存放转换后的数字
digits = "0123456789ABCDEF" #用来防止>10的数字无法表示
while num > 0: # 入栈
zhan.append(str(num % scale))
num = num // scale
# print(zhan) # 用于检验
while zhan != []:
changeNum += digits[int(zhan.pop())] #出栈
return changeNum
if __name__ == '__main__':
num = int(input("请输入一个十进制数字:"))
scale = int(input("请输入要转换成的进制数(包括2、8、16):"))
print(ten_change(num, scale))
- 运行结果
请输入一个十进制数字:9999
请输入要转换成的进制数(包括2、8、16):16
270F