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 |