Funkcja własna, zamieniająca hex na dec.

0

Dzień dobry.
Mógłbym prosić o podpowiedź jak bez użycia wbudowanych funkcji czy operatorów, zamienić liczbę hex zapisaną jako string, na liczbę dziesiętną.

1

Jes taka metoda w stringu jak "at(index)" , wyświetla ona dany index w stringu. Mając tą informacje robisz według wzoru:

7DE = (7 * 16^2) + (13 * 16^1) + (14 * 16^0) 

Jeszcze fajnie by było gdybyś zrobił sobie tablice(mapę/słownik itp.) od 0 do F , wtedy wiemy, że E jest 14 indeksem więc możemy to zapisać (14 * 16^0)

0

Po prostu, Zaczynasz od najmniej znaczacej cyfry I Mnozysz przez rosnace potegi zesnastu, jednoczesnie sumujac. A to 10, B, 11, itd.
0×23 = 3 + 2×16

0
7DE = (7 * 16^2) + (13 * 16^1) + (14 * 16^0) 

czyli:

x=16
a=7,b=13,c=14
=> ax^2 + bx+c - to już możesz szybko obliczyć korzystając z algorytmu Hornera:

https://en.wikipedia.org/wiki/Horner%27s_method

def horner(x, *polynomial):
    """A function that implements the Horner Scheme for evaluating a
    polynomial of coefficients *polynomial in x."""
    result = 0
    for coefficient in polynomial:
        result = result * x + coefficient
    return result

1 użytkowników online, w tym zalogowanych: 0, gości: 1