如何在python中手动将十六进制转换为十进制?
这是我第一次使用这个QnA网站。。。我在课堂上做了一个任务,要求我使用方法将数字从任何基转换成十进制。。。我对转换包含在十六进制数中的字母感到非常困惑。以下是我键入的程序:如何在python中手动将十六进制转换为十进制?,python,Python,这是我第一次使用这个QnA网站。。。我在课堂上做了一个任务,要求我使用方法将数字从任何基转换成十进制。。。我对转换包含在十六进制数中的字母感到非常困惑。以下是我键入的程序: def base_n_to_dec(num_string, base): dec = 0 index = len(num_string) - 1 for digit in num_string: dec += int(digit) * (base ** index) i
def base_n_to_dec(num_string, base):
dec = 0
index = len(num_string) - 1
for digit in num_string:
dec += int(digit) * (base ** index)
index -= 1
return dec
有谁能帮我修改一下这个程序,让它能识别十六进制数字中包含的字母表,把字符转换成十进制?请不要使用内置函数,因为这是不允许的。(我已经提交了任务,所以我的意思不是要求别人完成我的作业)很抱歉英语不好…换句话说,如果你没有任何“A-F”,并且你不知道如何使该部分工作,那么这项工作就可以了。看看如何创建一个。从简单的测试用例开始。如果哪怕是一个最基本的例子都不起作用,只要想一想,试着让它起作用,发布输入和预期输出。你只需要将a映射到10,B映射到11,等等
alphabet = '0123456789ABCDEF'
def base_n_to_dec(num_string, base):
'''
:param num_string: string containing number in base10
:param base: integer between 2 and 16
:returns: num_string based base as a string
'''
b10_num = 0
for digit in num_string:
b10_num *= 10
b10_num += alphabet.index(digit)
if b10_num == 0:
return '0'
result = ''
while b10_num > 0:
result = alphabet[b10_num % base] + result
b10_num /= base
return result