System binarny to najprostszy system pozycyjny, w którym pozycja liczby ma znaczenie. Powszechnie przyjął się on w elektronice cyfrowej oraz elektryce, dzięki prostej implementacji sprzętowej odpowiadającej stanom włączony i wyłączony. W późniejszym czasie system binarny trafił do dziedziny informatyki, gdzie rozgościł się w programowaniu.
System binarny pojawił się już w XVI wieku i był używany przez szkockiego matematyka, Johna Napiera. Zamiast 0 i 1 zwykł on pisać a i b. Ojcem współczesnego systemu binarnego jest jednak uczony Gottfried Wilhelm Leibniz.
Czym jest system binarny?
Co to jest system binarny? System binarny jest systemem pozycyjnym, w którym podstawą jest liczba dwa. Do zapisu liczby w systemie binarnym używa się wyłącznie dwóch cyfr: zera oraz jedynki. Jego zrozumienie jest elementarną wiedzą, jaką należy pojąć z podstaw programowania i funkcjonowania urządzeń cyfrowych.
W systemie binarnym liczby zapisujemy jako ciągi cyfr. Każda z nich jest mnożoną kolejnej potęgi podstawy systemu, czyli potęgę liczby dwa. Przykładowe liczby zapisane w systemie binarnym wyglądają tak:
- 1010 – odpowiada liczbie 10
- 101101 – odpowiada liczbie 45
- 11111111 – odpowiada liczbie 255
Przeczytaj również: Wyrażenia regularne w programowaniu
Jak liczyć system binarny? Konwersja na postać dziesiętną
Powyżej podaliśmy przykłady liczb binarnych oraz ich odpowiedników w systemie dziesiętnym. Jak poprawnie wykonać działania?
- 1010 – odpowiada liczbie 10
Chcąc przekonwertować liczbę binarną 1010 na system dziesiętny, należy wykonać następujące działanie: 1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 0 * 2^0 = 10. Analogicznie postępujemy w pozostałych przypadkach.
- 101101 – 1 * 2^5 + 0 * 2^4 + 1 * 2^3 + 1 * 2^2 + 0 * 2^1 + 1 * 2^0 = 45
- 11111111 – 1 * 2^7 + 1 * 2^6 + 1 * 2^5 + 1 * 2^4 + 1 * 2^3 + 1 * 2^2 +1 * 2^1 + 1 * 2^0 = 255
Jak liczyć system binarny? Konwersja na postać binarną
Konwersji liczby dziesiętnej na system binarny dokonuje się poprzez wielokrotne dzielenie przez 2 i spisywanie reszty z dzielenia, która wynosić będzie albo 0, albo 1. Dla przykładu weźmy liczbę 255:
255/2 = 127, reszta 1
126/2 = 63, reszta 1
63/2 = 31, reszta 1
31/2 = 15, reszta 1
15/2 = 7, reszta 1
7/2 = 3, reszta 1
3/2 = 1, reszta 1
1/2 = 0, reszty 1
Liczba binarna w wyniku dzielenia powstała z reszty, należy ją czytać od dołu do góry, czyli 1111111.
Wykorzystanie systemu binarnego w programowaniu
Programowanie w systemie binarnym wykorzystywane jest w elektronice cyfrowej. Ograniczone wartości liczbowe do 1 oraz 0 odpowiadają odpowiednio komunikatom włączony i wyłączony. Kodowanie w systemie binarnym jest trudniejsze pod kątem kolorowania kodu czy wizualnego systemu strzałkowego. Sprawdza się jednak na początku nauki programowania z dwóch powodów. Pierwszym jest prostota programowania tekstowego, a drugim tworzenie swego rodzaju zagadki, której rozwiązanie dzięki wielokrotnym ćwiczeniom staje się coraz łatwiejsze.
01 w C++
Konwersja systemu binarnego w C++ wymaga zastosowanie dwóch funkcji. W celu konwersji liczby binarnej na system dziesiętny warto skorzystać z funkcji “strtol” z biblioteki “cstdlib”. Funkcja “strtol” odpowiada za konwersję wartości zapisanej w łańcuchu znaków w dowolnym systemie liczbowym do postaci liczby typu całkowitego (long). Jej składnia wygląda tak:
#include <cstdlib>
long strtol( const char * start, char ** end, int base );
O czym mówią argumenty?
- const char * start – odpowiada za łańcuch znaków, które mają zostać przekonwertowane do wersji liczbowej.
- char ** end – odpowiada adresowi pierwszego znaku, którego nie udało się przekonwertować.
- int base – mówi o systemie liczbowym, w jakim zapisana jest wartość w łańcuchu znaków. Musi się ona mieścić w przedziale 2-36.
W celu konwersji liczby dziesiętnej na system binarny warto skorzystać z funkcji “itoa” z biblioteki “cstdlib”:
#include <cstdlib
char * itoa( int value, char * str, int base );
O czym mówią argumenty?
- int value – wpisujemy liczbę całkowitą, którą chcemy zmienić
- char* str – podajemy miejsce zapisania konwersji.
- int base – podstawa systemu liczbowe dla wyniku.
Dzięki systemowi binarnemu doczekaliśmy się powstania różnego typu komputerów. Części elektroniczne komunikują się ze sobą. Do poprawnego działania komputera potrzebny jest prąd elektryczny. Jego obecność odbierana i interpretowana jest jako 1, podczas gdy jego brak stanowi 0. Ustawienie w konkretnej kolejności cyfr 0 i 1 pozwala na powstanie czytelnych dla nas obrazów, dźwięków oraz tekstów.