Zamiana systemu binarnego i dziesiętnego w Pythonie

Zamiana systemu binarnego na dziesiętny i dziesiętnego na binarny to częsty problem, w szczególności w zadaniach spotykanych na maturze i na różnego rodzaju konkursach. Python pozwala na bardzo łatwą konwersję, ale żeby jej używać należy się lekko wgryźć w dokumentację, żeby poznać dodatkowe możliwości niektórych funkcji.

Zamiana z dziesiętnego na binarny

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

Przykładowo, poniższa linijka kodu

1
bin(10)

zwróci w interpreterze Pythona wartość

1
'0b1010'

Zaznaczam, że wartość ta będzie stringiem. Jeśli więc komuś przeszkadza prefiks 0b przed właściwą liczbą w systemie binarnym, to może go uciąć kodem

1
bin(10)[2:0]

Zamiana z systemu binarnego na dziesiętny

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

I tak, żeby zamienić stringa bin = "1011", wystarczy w interpreterze wpisać linijkę kodu:

1
int(bin, 2)

by otrzymać wartość

1
11

Zamianę pomiędzy innymi systemami liczbowymi wykonuje się analogicznie.