"""
# author Liu shi hao
# date: 2019/11/21 14:19
# file_name: switch_num_to_num
"""
def in_int_n():
while True:
num = input("請輸入要轉換的n進制n(暫支持36進制):")
if num.isdigit() and 2<=int(num)<37:
return int(num)
print("重新輸入!")
# n進制轉10進制
def switch():
x = in_int_n()
str1 = input("輸入符合n進制的規範數:")
sum = 0
for i in range(len(str1) - 1, -1, -1):
if str1[i].isdigit():
sum += int(str1[i]) * x ** int(len(str1) - i - 1)
else:
sum += (ord(str1[i]) - 55) * x ** int(len(str1) - i - 1)
return sum
print(switch())
# 10進制轉n進制
def in_int_m():
while True:
num = input("請輸入要轉換整數m:")
if num.isdigit():
return int(num)
print("重新輸入!")
def conversion_base():
m = in_int_m()
n = in_int_n()
str1 = ""
while m != 0:
if m % n >n:
str1 = str(chr(m % n+55)) + str1
# str1 = "|"+str(m % n) +"|"+ str1 # 取餘數,按位數累加到字符串
else:
if m % n > 9:
str1 = str(chr(m % n + 55)) + str1
else:
str1 = str(m % n) + str1
m = m // n # 取商做下一次的除數
return str1
print(conversion_base())
說明
此功能函數並不完善,需要自我約束使用,請大佬們多加指點修正。