System binarny (dwójkowy) – konwersje

Matura z informatyki i system binarny to nierozerwalny duet. W tym wpisie swoją uwagę poświęcę właśnie pojęciu systemu binarnego i jego konwersji na  lepiej nam znany system dziesiętny.

Jest 10 rodzajów ludzi. Ci, którzy rozumieją system binarny i ci, którzy go nie rozumieją. 

System binarny jest najprostszym znanym systemem pozycyjnym, czyli takim, w którym pozycja liczby ma znaczenie. Do zapisu liczby w systemie binarnym używa się dwóch cyfr: zera i jedynki (stąd nazwa dwójkowy).

System dwójkowy przyjął się szczególnie w elektronice, gdzie początkowo używany był do opisu dwóch stanów prądu: 0 — brak prądu, 1 — obecność prądu. Jako że bez prądu żadne urządzenie cyfrowe nie ma racji bytu, to system ten znalazł swoje zastosowanie w szeroko pojętej informatyce. Przykładem liczby binarnej jest 10000 (16 w systemie dziesiętnym), 1001001 (73).

Jak zamieniać liczby binarne na dziesiętne?

System dwójkowy zawdzięcza swoją nazwę nie bez powodu. Konwersja polega na dodawaniu iloczynów kolejnych potęg dwójki i odpowiadającym im cyfr z liczby binarnej. Przy zamianie liczby z systemu binarnego na dziesiętny musimy zacząć od końca liczby. Spójrzmy, dla przykładu, na liczbę 10100:

  1. Bierzemy pierwszą cyfrę od końca: 0. Potęgi dwójki zaczynamy od wykładnika 0. W takim razie 0 * 20 = 0 * 1 = 0;
  2. Bierzemy kolejną cyfrę od końca: 0. Kolejny wykładnik dwójki to 1, więc 0 * 21 = 0 * 2 = 0;
  3. Trzecia od końca jest 1. Wykładnik dwójki zaczęliśmy od zera, wykonujemy więc działanie 1 * 22 = 1 * 4 = 4;
  4. Kolejna cyfra od końca to 0: 0 * 23 = 0 * 8 = 0;
  5. Ostatnia od końca cyfra to 1. Działanie ma postać 1 * 24 = 1 * 16 = 16;
  6. Na koniec sumujemy wszystkie wyniki działań: 0 + 0 + 4 + 0 + 16 = 20. Liczba 10100 w systemie dziesiętnym ma więc wartość 20.

Ten sposób konwersji można wykorzystać właściwie w każdym systemie liczbowym. Wystarczy zamiast potęg dwójki wpisywać kolejne potęgi podstawy systemu.

Listę powyższych kroków możemy uogólnić i przedstawić na schemacie blokowym:

System binarny - konwersja

System binarny na dziesiętny —  implementacje 

W przypadku programów komputerowych konwersja ta zachodzi podobnie, jak byśmy robili to na kartce papieru. Oczywiście istnieją biblioteki pozwalające na szybką zamianę liczb, ale na maturze możemy nie mieć do nich dostępu. W związku z tym poniżej znajdziesz implementacje w C++, Javie oraz Pythonie:

C++

Java

Python



O systemie binarnym i przydatnych algorytmach przeczytasz w tym podręczniku

Jak zamieniać liczby dziesiętne na binarne?

Skoro umiemy już zamienić liczbę binarną na dziesiętną, musimy jeszcze prześledzić jak zrobić to w drugą stronę. Zamiana polega na ciągłym dzieleniu całkowitym liczby na dwa i zapisywaniu reszty z dzielenia. Następnie reszty z dzielenia wypisujemy od końca, w wyniku czego otrzymamy liczbę w systemie binarnym. Weźmy znowu pod lupę liczbę z poprzedniego przykładu: 20:

  1. Dzielimy 20 na 2, czego wynikiem jest 10. Reszta z tego dzielenia jest równa 0.
  2. Dzielimy 10 na 2, czego wynikiem jest 5. Reszta z dzielenia jest równa 0.
  3. Dzielimy 5 na 2, czego wynikiem jest 2(pamiętaj, że dzielimy całkowicie, czyli pomijamy rozwinięcie dziesiętne). Reszta z tego dzielenia jest równa 1.
  4. Dzielimy 2 przez 2, czego wynikiem jest 1. Reszta z dzielenia równa 0.
  5. Dzielimy 1 przez 2: wynik równy 0. Reszta z dzielenia: 1.
  6. Bierzemy teraz wszystko do kupy, zaczynając od końca: 10100 — oto nasza liczba w systemie binarnym.

Wszystkie powyższe kroki przedstawiłem na poniższym schemacie blokowym. Wykorzystałem w nim operator modulo(%), który zwraca resztę z dzielenia dwóch liczb.

System binarny - konwersja

System binarny —  konwersja z dziesiętnego implementacje 

Wiedząc już, jak zamienić liczbę dziesiętną na binarną, nie pozostało nam nic innego, jak wdrożyć tą wiedzę w program. Poniżej znajdziesz implementacje w językach dostępnych na maturze z informatyki.

C++

Java

Python

Podsumowanie

Jak wspominałem na początku, system binarny jest nieodłączną częścią matury z informatyki. Aby ją jak najlepiej napisać warto więc mieć go małym palcu. Jeżeli szukasz dodatkowych materiałów do nauki, zajrzyj do tego wpisu. Omówiłem tam najważniejsze, przydatne na maturze rzeczy. Znajdziesz tam również listę wartych uwagi algorytmów.

grupa wsparcia matura z informatyki
You Might Also Like
Dodaj komentarz

icon