如何在python中手动将十六进制转换为dec?

时间:2018-09-21 11:22:06

标签: 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)
        index -= 1
    return dec

有人可以帮助我修改此程序,以便它可以识别十六进制数字中包含的字母,从而可以将字符转换为十进制吗?请不要使用内置函数,因为这是不允许的。 (我已经提交了任务,所以我并不是要要别人完成我的任务)对不起,英语不好。。。

1 个答案:

答案 0 :(得分:0)

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