最近,我仿照https://blog.csdn.net/Eyizoha/article/details/94897931?locationNum=9&fps=1上的2-36进制转换的代码做出了一个更强的2-62进制转换工具,不仅可以进行普通的进制转换,还可以直接进行不同进制计算,代码如下(Python3):
from decimal import *
getcontext().prec = 1000
def trans(num): # 输入数字换为字母或输入字母转换为数字
if type(num) == int:
if num < 10:
return str(num)
elif num < 36:
return chr(ord('a') + num - 10)
else:
return chr(ord('A') + num - 36)
else:
if num.isdigit():
return int(num)
elif num.islower():
return ord(num) - ord('a') + 10
elif num.isupper():
return ord(num) - ord('A') + 36
def check(num, base, target): # 待转换数字,当前进制,目标进制
if type(base) is not int or base < 2 or base > 62 or type(target) is not int or target < 2 or target > 62:
print('非法进制数!')
return False
if type(num) is int or type(num) is Decimal:
num = str(num)