Zamiana systemu szesnastkowego i dziesiętnego w Pythonie

System szesnastkowy (heksalny) używamy szesnastu znaków do zapisu liczb. Są to cyfry 0, 1, 2, 3, 4, 5, 6, i 7, 8, 9 oraz liczby a, b, c, d, e, f. Poza tym, niczym nie różni się od naszego systemu dziesiątkowego. System oktalny zapisujemy często (np. w kalkulatorach) symbolami HEX. Python pozwala na bardzo łatwą konwersję, ponieważ wszystko dzieje się za pomocą jednej instrukcji. Bardzo podoblnie zamiany z systemu dwójkowego i zamiany z systemu oktalnego.

Zamiana z dziesiętnego na szesnastkowy

Z pomocą przychodzi wbudowana funkcja hex(liczba). Wystarczy, że zamiast zmiennej liczba wpiszemy dowolną liczbę całkowitą i pojawi się wynik.

Kod:

1
hex(200)

Wynik:

1
'0xc8'

Zaznaczam, że wartość ta będzie stringiem. Jeśli więc komuś przeszkadza prefiks 0x przed właściwą liczbą w systemie ósemkowym, to może go uciąć kodem, który widać poniżej.

Kod:

1
hex(200)[2:0]

Wynik:

1
'cb'

Zamiana z systemu szesnastkowego na dziesiętny

Zamiana w drugą stronę jest równie prosta, co DEC na HEX. Wystarczy pamiętać o istnieniu w Pythonie funkcji int(liczba). Zamienia ona dowolnego stringa złożonego z cyfr na liczbę całkowitą, jednak ma ona opcjonalny parametr, który pozwala wybrać podstawę systemu liczbowego, w jakiej ten string jest zapisany.

I tak, żeby zamienić stringa hex = "10abc", wystarczy zadziałać w interpreterze tak jak jest to przedstawione poniżej

Kod:

1
int(hex, 16)

Wynik:

1
68284