Wszystko, co programista powinien wiedzieć o systemie binarnym

28/06/2019

3 minut czytania

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?

  1. 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. 

  1. 101101 – 1 * 2^5 + 0 * 2^4 + 1 * 2^3 + 1 * 2^2 + 0 * 2^1 + 1 * 2^0 = 45
  2. 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.

O nas

Codecool to miejsce, w którym zaczyna się Twoja kariera w IT. Daj się pokierować naszym profesjonalnym mentorom, skorzystaj z gwarancji pracy i odroczonej płatności.
Masz pytanie? Możemy pomóc! Podrzuć nam emaila na [email protected], albo napisz do nas na Facebooku.

Powiązane posty

Zarządzanie czasem i zadaniami: kluczowe umiejętności miękkie do osiągnięcia sukcesu w kodowaniu
Nie tylko umiejętności techniczne wyróżnią Cię...
Twój pierwszy tydzień w Codecool
Twój pierwszy tydzień w Codecool będzie...
TOP 25 zawodów przyszłości w IT: jak rozpocząć karierę
Branża technologiczna rozkwita i generuje ogromną...

Add meg elérhetőséged, és hamarosan visszahívunk!