Как произвести математические операции с символом из списка указывая его индекс, а не сам символ

Мудрю и страдаю ерундой скажете. При переводе шестнадцатеричных чисел в десятичную, потребовалось провести операции с числами, выдаваемыми через len(), важен порядок, прибегаю к index и туплю.

def num16():
    n = input("Введите шестнадцатеричное число: ")
    r = list(n)
    A = 10
    B = 11
    C = 12
    D = 13
    E = 14
    F = 15
    if len(r) == 1:
        numf = r.index(0) * 1
    elif len(r) == 2:
        numf = (r.index(0) * 1) + (r.index(1) * 16 ** 1)
    elif len(r) == 3:
        numf = (r.index(0) * 1) + (r.index(1) * 16 ** 1) + (r.index(2) * 16 ** 2)
    elif len(r) == 4:
        numf = (r.index(0) * 1) + (r.index(1) * 16 ** 1) + (r.index(2) * 16 ** 2) + (r.index(3) * 16 ** 3 )
    elif len(r) == 5:
        numf = (r.index(0) * 1) + (r.index(1) * 16 ** 1) + (r.index(2) * 16 ** 2) + (r.index(3) * 16 ** 3 ) + (r.index(4) * 16 ** 4)

Думал сработает, оказывается всё не так просто. Простите за недопонимание всего процесса.


Ответы (1 шт):

Автор решения: A_Vaclav

Можно вот так:

num = 'ffffffff'# четыре байта
res = int(num, 16)
print(res)

>>>4294967295
→ Ссылка