Tematem tego artykułu są systemy liczbowe w języku Python 🔢. Zobaczysz w jaki sposób możemy przekonwertować wartość z jednego systemu liczbowego do drugiego, tym samym dotykając systemu dziesiętnego, dwójkowego, ósemkowego i szesnastkowego 😊! Zapraszam do środka po wyjaśnienia 😄!
SYSTEMY LICZBOWE W JĘZYKU PYTHON UZYSKUJEMY POPRZEZ FUNKCJE
Wyjaśnię najpierw o co chodzi, a potem przejdziemy do funkcji 👍!
CZYM JEST SYSTEM LICZBOWY?
System liczbowy to metoda reprezentowania wartości typu całkowitoliczbowego (bez ułamka) uzyskana poprzez stosowanie się do pewnych określonych reguł ℹ️. W informatyce wyróżniamy 4 najbardziej powszechne systemy liczbowe 👇:
- dziesiętny (decymalny),
- dwójkowy (binarny),
- ósemkowy (oktalny),
- szesnastkowy (heksadecymalny).
Każdy z nich określa inne znaczenie dla reprezentacji tej samej wartości. Liczby jakie piszemy i odczytujemy na co dzień, interpretujemy w systemie dziesiętnym. Nawet jak powiesz jakąś liczbę na głos np. "pięćdziesiąt tysięcy pięćset pięćdziesiąt pięć" 😝, to zwróć uwagę, że automatycznie myślimy w systemie dziesiętnym 😁! Ta sama liczba będzie wyglądać inaczej w innych systemach 😲.
Zaraz poznasz kształt każdego z wymienionych systemów, jak pokażę Ci poszczególne funkcje do konwersji liczb 🙂.
JAKIE WYSTĘPUJĄ FUNKCJE W JĘZYKU PYTHON DO KONWERSJI NA INNY SYSTEM LICZBOWY?
Python posiada następujące funkcje służące do uzyskiwania liczby w systemie liczbowym jaki nas interesuje 👇:
- bin (system dwójkowy/binarny),
- oct (system ósemkowy/oktalny),
- hex (system szesnastkowy/heksadecymalny).
Nie musimy importować jakichkolwiek modułów ℹ️. Te funkcje są dostępne już od razu. Każda z nich akceptuje liczbę całkowitą w systemie dziesiętnym (jest on "domyślny"). Zobaczmy je w akcji ⏩!
BIN
"bin" zamienia liczbę na system dwójkowy (binarny) 2️⃣. Wynik będzie postaci liczby zamienionej na system dwójkowy z przedrostkiem "0b" (cyfra zero i mała litera 'b' ℹ️) jako oznaczenie tego systemu. To jest przykład 👇:
print(bin(20))Wynikiem będzie taki ciąg 👇:
0b10100Przedrostek "0b", a zaraz po nim ciąg zer i jedynek oznaczających liczbę 20 w systemie dwójkowym ✔️. Jeżeli interesuje Cię w jaki sposób odbywa się sama konwersja, przeczytaj artykuł na temat konwersji liczby dziesiętnej na system dwójkowy ℹ️.
Funkcja "bin" konwertuje liczbę w systemie dziesiętnym na liczbę w systemie dwójkowym (binarnym).
OCT
"oct" oznacza konwersję liczby na system ósemkowy (oktalny) 8️⃣. Na wyjściu ujrzysz podaną liczbę zamienioną na system ósemkowy z przedrostkiem "0o" (cyfra zero i mała litera 'o' ℹ️) jako symbol tego systemu. Oto przykładowe użycie 👇:
print(oct(20))Wynik będzie następującej postaci 👇:
0o24Po przedrostku "0o" znajduje się ciąg cyfr jako liczba 20 w systemie ósemkowym ✔️. Sam sposób konwersji z systemu dziesiętnego na ósemkowy został opisany w osobnym artykule ℹ️.
Funkcja "oct" konwertuje liczbę w systemie dziesiętnym na liczbę w systemie ósemkowym (oktalnym).
HEX
"hex" konwertuje liczbę na system szesnastkowy (heksadecymalny) 1️⃣6️⃣. Rezultatem będzie liczba zamieniona na system szesnastkowy z przedrostkiem "0x" (cyfra zero i mała litera 'x' ℹ️) charakterystycznym dla tego systemu. A oto prosty przykład użycia 👇:
print(hex(20))Wynik będzie takiej postaci 👇:
0x14Najpierw jest przedrostek "0x", a następnie ciąg cyfr, który oznacza liczbę 20 w systemie szesnastkowym ✔️. Zwracam uwagę, że wyjątkowo w tym systemie możesz też natrafić na litery od 'a' do 'f' 😮! One oznaczają liczby od 10 do 15 ℹ️. W tym systemie podstawą jest liczba 16, a ponieważ liczby od 10 do 15 składają się z dwóch cyfr, należało wprowadzić oznaczenie "zajmujące" tylko jeden znak i dlatego są pierwsze litery alfabetu 💡.
W innym materiale opisałem samą metodę konwersji systemu dziesiętnego na szesnastkowy, z którego możesz się dowiedzieć jak samodzielnie wyznaczyć wynik ℹ️.
Funkcja "hex" konwertuje liczbę w systemie dziesiętnym na liczbę w systemie szesnastkowym (heksadecymalnym).
Tak wygląda konwersja liczby dziesiętnej na inne systemy liczbowe w języku Python 🔥! Zanim zakończę materiał, przyjrzyjmy się jeszcze sytuacji, w której mamy liczbę w innym systemie niż dziesiętny i chcemy dokonać konwersji na system dziesiętny 😅!
JAK W JĘZYKU PYTHON SKONWERTOWAĆ LICZBĘ NA SYSTEM DZIESIĘTNY?
Jeżeli mamy sytuację, w której posiadamy liczbę w jakimkolwiek systemie liczbowym innym niż dziesiętny i chcemy ją przekonwertować na ten sam system, należy użyć konstruktora klasy "int" z dodatkowym parametrem określającym podstawę w postaci liczby całkowitej ❤️.
To jest przykład zamiany z systemu dwójkowego na dziesiętny 👇:
print(int(bin(20), 2))To z kolei przykład ukazujący zamianę z systemu ósemkowego na dziesiętny 👇:
print(int(oct(20), 8))A tutaj jak zamienić system szesnastkowy na dziesiętny 👇:
print(int(hex(20), 16))Jak widzisz, w każdym z przykładów wystarczy po prostu wpisać odpowiednią podstawę w drugim parametrze i w taki łatwy sposób Python Ci przekonwertuje liczbę na system dziesiętny 😄!
Tyle w temacie 😄! Zachęcam do nauczenia się samodzielnego wyznaczania liczb na różne systemy liczbowe, bo to jest jeden z fundamentalnych tematów w informatyce, jaki trzeba po prostu znać 🫵! Potem dobrze jest skorzystać z Pythona do sprawdzenia sobie odpowiedzi 👍.