Liczby binarne: podstawy
W systemie binarnym (dwójkowym) liczby zapisujemy wyłącznie za pomocą dwóch cyfr: 0 i 1. Pozycja każdej cyfry w zapisie odpowiada określonej potędze liczby 2. Potęgi zaczynają się od potęgi zerowej przy cyfrze znajdującej się najbardziej na prawo i zwiększają się w kierunku lewej strony. Wartość liczby binarnej obliczamy następnie jako sumę tych potęg. Każdą potęgę uwzględniamy, jeśli na odpowiedniej pozycji znajduje się 1, a pomijamy, jeśli w danym miejscu znajduje się 0.

Oznaczanie systemów liczbowych
Aby rozróżnić, czy mówimy o liczbie w systemie binarnym, czy dziesiętnym, dodajemy do liczb indeksy dolne oznaczające system. Na przykład liczbę 5 w systemie dziesiętnym będziemy zapisywać jako 5_{10}, a liczbę binarną o wartości 5 jako 101_2. Dzięki temu możemy jednoznacznie rozróżnić, że na przykład zapis 11_{10} oznacza liczbę dziesiętną 11, podczas gdy zapis 11_2 oznacza liczbę binarną 11, czyli liczbę dziesiętną 3.
Liczby binarne na przykładzie dłoni
Aby lepiej zrozumieć zapis liczb binarnych, możemy wykorzystać coś, co zawsze mamy pod ręką – własną dłoń. Wyobraźmy sobie, że na palcach jednej ręki zapisujemy potęgi liczby 2:

W ten sposób możemy na jednej ręce przedstawić liczby od 0 do 31. Każdą z nich można bowiem jednoznacznie wyrazić jako sumę potęg liczby 2. Jeśli położenie każdego palca oznaczymy za pomocą 0 lub 1, otrzymamy zapis liczby w systemie binarnym.
Przykłady liczb zapisanych w systemie binarnym
| system dziesiętny | suma potęg | system binarny |
|---|---|---|
| 1 | 1 | 1 |
| 2 | 2 | 10 |
| 3 | 2+1 | 11 |
| 4 | 4 | 100 |
| 5 | 4+1 | 101 |
| 6 | 4+2 | 110 |
| 7 | 4+2+1 | 111 |
| 8 | 8 | 1000 |
| 9 | 8+1 | 1001 |
| 10 | 8+2 | 1010 |
| 16 | 16 | 10000 |
| 20 | 16+4 | 10100 |
| 30 | 16+8+4+2 | 11110 |
Bity i bajty
Bit jest najmniejszą jednostką informacji. Może przyjmować tylko dwie różne wartości: 0 lub 1. Bity są grupowane w bajty (ang. byte), jeden bajt składa się z 8 bitów. Bit oznaczamy małą literą b, a bajt wielką literą B.
Dlaczego 8 bitów?
Bajt jest najmniejszą jednostką danych, którą operuje komputer. Nie istnieje fundamentalny powód, dla którego ta jednostka miałaby mieć dokładnie 8 bitów, poza tym, że jest to „w sam raz”. Zbyt mały bajt nie pomieściłby nawet jednego znaku alfabetu, a zbyt duży prowadziłby do marnowania pamięci.
Na początku różne komputery pracowały z bajtami o różnej wielkości (np. 7 bitów, 10 bitów), ale z czasem 8 bitów stało się standardem. Możliwość polegania na jednolitej wielkości bajtu jest bardzo korzystna, ponieważ umożliwia programom działanie na różnych komputerach.
Jednostki wielokrotne
Do oznaczania dużych ilości bajtów używa się jednostek wielokrotnych. Na przykład: 1 kB = 1000 B, a 1 MB = 1 000 000 B. Możesz je przećwiczyć w temacie Informacje, rozmiar danych.
Bity w liczbach binarnych
Nazwa „bit” powstała z połączenia angielskich słów binary digit (po polsku „cyfra dwójkowa”). Przy zapisie liczb w systemie dwójkowym każda cyfra odpowiada jednemu bitowi. Na przykład liczba 1100_2 ma 4 bity. Bit znajdujący się po lewej stronie nazywany jest najstarszym lub najbardziej znaczącym, ponieważ ma największą wagę (2^{N-1}, gdzie N to liczba bitów). Natomiast bit znajdujący się po prawej stronie nazywany jest najmłodszym lub najmniej znaczącym, ponieważ ma najmniejszą wagę (2^0 = 1).
Ile bitów potrzebujemy?
Za pomocą 1 bitu można rozróżnić tylko 2 wartości (np. włączone/wyłączone). Z każdym kolejnym bitem liczba możliwych wartości podwaja się. Tak więc za pomocą 2 bitów rozróżniamy 4 wartości (np. strony świata), za pomocą 3 bitów aż 8 wartości (np. dni tygodnia), a za pomocą 4 bitów aż 16 wartości (np. miesiące roku). Ogólna zasada jest taka, że za pomocą N bitów można rozróżnić 2^N różnych wartości. Na przykład w 8 bitach (1 bajcie) można zapisać 2^8 = 256 różnych wartości.
Zakres wartości
Jeśli zapisujemy nieujemne liczby całkowite za pomocą 4 bitów, to najniższą wartością będzie 0000_2 = 0, a najwyższą 1111_2 = 2^4 - 1 = 16 - 1 = 15. Ogólnie dla N bitów najwyższa wartość to 111...1_2 = 2^N - 1.
| Bitów | Wartości | Zakres |
|---|---|---|
| 4 | 2⁴ = 16 | 0–15 |
| 5 | 2⁵ = 32 | 0–31 |
| 6 | 2⁶ = 64 | 0–63 |
| 7 | 2⁷ = 128 | 0–127 |
| 8 | 2⁸ = 256 | 0–255 |
| 16 | 2¹⁶ = 65 536 | 0–65 535 |