Dlaczego dwójkowy?
🎯 Po co Ci to?
Dlaczego komputery uparły się na zera i jedynki? Nie z miłości do matematyki. Z tchórzostwa inżynierów — i to bardzo rozsądnego. Rozróżnianie dziesięciu poziomów napięcia w kablu jest trudne: zakłócenia, temperatura, starzenie się części zamieniają „siódemkę" w „ósemkę". Rozróżnić dwa stany — jest prąd / nie ma prądu — potrafi nawet najtańszy, najbardziej zmęczony układ. Cała cyfrowa cywilizacja stoi na tej jednej decyzji: mniej stanów, więcej niezawodności. Reszta jest arytmetyką, którą opanujesz w pół godziny.
✅ Czego się nauczysz
Po tej jednostce potrafisz:
- wyjaśnić, czym jest bit i bajt oraz dlaczego komputery liczą dwójkowo;
- odczytać wartość liczby zapisanej binarnie (system dwójkowy → dziesiętny);
- zapisać liczbę dziesiętną w systemie dwójkowym dwiema metodami.
📘 Wyjaśnienie
📐 DEFINICJA — bit: najmniejsza porcja informacji: jedno rozstrzygnięcie „0 albo 1". Osiem bitów to bajt.
Po ludzku: bit to odpowiedź na jedno pytanie tak/nie; bajt to osiem takich odpowiedzi w paczce. Czym NIE jest: „małą liczbą". Bit nie ma wartości „pół" ani „prawie 1" — to właśnie jego siła.
Jak z samych zer i jedynek zrobić dowolną liczbę? Dokładnie tak samo, jak robisz to na co dzień z cyframi 0–9. W liczbie 352 trójka nie znaczy „trzy" — znaczy „trzy setki", bo stoi na pozycji setek. System dziesiętny jest pozycyjny: wartość cyfry zależy od miejsca, a pozycje to kolejne potęgi dziesiątki: $10^0, 10^1, 10^2, \dots$
System dwójkowy zmienia tylko jedno: potęgi dziesiątki na potęgi dwójki. Pozycje mają wartości $1, 2, 4, 8, 16, 32, 64, 128, \dots$ — a na każdej pozycji stoi 0 lub 1, czyli „bierzemy tę potęgę albo nie".
Odczyt (binarny → dziesiętny): zsumuj wartości pozycji, na których stoi 1.
$$101101_2 = 32 + 8 + 4 + 1 = 45$$
(Indeks $_2$ mówi, w jakim systemie czytać zapis — bez niego „101" mogłoby znaczyć sto jeden.)
Zapis (dziesiętny → binarny), metoda 1 — od największej potęgi: znajdź największą potęgę dwójki mieszczącą się w liczbie, odejmij, powtarzaj. Dla 45: mieści się 32 (zostaje 13), potem 8 (zostaje 5), potem 4 (zostaje 1), potem 1 (zostaje 0). Zapalone pozycje: 32, 8, 4, 1 → $101101_2$.
Metoda 2 — dzielenie przez 2: dziel liczbę przez 2, notując reszty; binarny zapis to reszty czytane od końca. Ta metoda jest mechaniczna — czyli idealna dla algorytmu (i na sprawdzian).
🧮 Prześledź
Zamień 45 na system dwójkowy metodą dzielenia — uzupełnij tabelkę, zanim zajrzysz.
| działanie | wynik | reszta |
|---|---|---|
| 45 : 2 | 22 | ? |
| 22 : 2 | ? | ? |
| 11 : 2 | ? | ? |
| 5 : 2 | ? | ? |
| 2 : 2 | ? | ? |
| 1 : 2 | ? | ? |
Sprawdź odpowiedź
Reszty kolejno: 1, 0, 1, 1, 0, 1. Czytane od dołu do góry: $101101_2$ — zgadza się z metodą 1. Dlaczego od końca? Pierwsza reszta mówi, czy liczba jest parzysta, czyli opisuje ostatni bit (pozycję jedynek); każde kolejne dzielenie „schodzi" o pozycję wyżej.
💭 Pomyśl: Ile różnych wartości da się zapisać w jednym bajcie (8 bitów)? A jaka jest największa z nich?
Sprawdź odpowiedź
Każdy bit ma 2 możliwości, bitów jest 8, więc kombinacji jest $2^8 = 256$ — od $00000000$ do $11111111$. Największa wartość to $255$ (wszystkie potęgi od 1 do 128 zsumowane), bo jedną z 256 kombinacji zajmuje zero. Te dwie liczby — 255 i 256 — będą Cię odtąd prześladować: limity znaków, poziomy jasności piksela, rozmiary pamięci. Teraz wiesz, skąd się biorą.
⚠️ Uwaga, pułapka
Zapis $10_2$ to dwa, nie dziesięć. Przy konwersjach najczęstszy błąd to zgubienie się, „w którą stronę" właśnie liczysz. Nawyk zawodowca: przy każdej liczbie w notatkach dopisuj system ($45_{10}$, $101101_2$), dopóki konwersje nie wejdą Ci w krew.
🕰️ Skąd to wiemy
Arytmetykę dwójkową opisał Gottfried Wilhelm Leibniz już w 1703 roku — zachwycony, że całą matematykę da się zbudować z „nic" i „coś". Przez dwa stulecia była ciekawostką filozofów. Dopiero w latach 30. XX wieku Claude Shannon zauważył, że algebra zer i jedynek idealnie opisuje obwody z przekaźnikami — i ciekawostka stała się fundamentem epoki. Morał zapamiętaj na całe życie: nie ma „bezużytecznej" matematyki, są tylko pomysły czekające na swój sprzęt.
🛠️ Teraz Ty
Bez komputera: zapisz binarnie liczbę dnia swoich urodzin (1–31) oraz liczbę 100. Potem odczytaj dziesiętnie $11110000_2$ i $1010101_2$. Z komputerem: sprawdź się — w Pythonie bin(45) pokazuje zapis dwójkowy, a 0b101101 wpisane w konsoli — wartość dziesiętną.
📐 Definicje tej lekcji
- Bit / bajt — jedno rozstrzygnięcie 0/1; paczka ośmiu bitów.
- System pozycyjny — zapis, w którym wartość cyfry zależy od pozycji (pozycje = potęgi podstawy).
- System dwójkowy (binarny) — system pozycyjny o podstawie 2, jedyne cyfry: 0 i 1.
📌 Najważniejsze w pigułce
- Dwa stany zamiast dziesięciu to decyzja inżynierska: prostota = niezawodność.
- Binarny → dziesiętny: sumuj potęgi dwójki pod jedynkami; dziesiętny → binarny: dziel przez 2, czytaj reszty od końca.
- $n$ bitów = $2^n$ kombinacji; bajt = 256 wartości (0–255).
🎒 Zadania
- Zamień na system dziesiętny: $1000_2$, $1111_2$, $10000000_2$.
Wskazówka i odpowiedź
$1000_2 = 8$; $1111_2 = 8+4+2+1 = 15$; $10000000_2 = 128$. Warto zapamiętać wzorzec: sama jedynka z zerami to czysta potęga dwójki, a same jedynki to potęga dwójki minus 1 (np. $1111_2 = 16 - 1$). Ten drugi trik oszczędza mnóstwo liczenia.
- Zamień 77 na system dwójkowy oboma poznanymi sposobami i sprawdź, czy wyniki się zgadzają.
Wskazówka i odpowiedź
Od największej potęgi: $77 = 64 + 8 + 4 + 1$ → $1001101_2$. Dzieleniem: reszty 1, 0, 1, 1, 0, 0, 1 czytane od końca → $1001101_2$. Zgoda. Jeśli metody dają różne wyniki, błąd jest niemal zawsze w gubieniu reszty albo w czytaniu reszt „od góry".
- Na ilu bitach da się zapisać numer ucznia w dzienniku (1–36)? A numer PESEL-owego dnia roku (1–366)?
Wskazówka i odpowiedź
Potrzeba tylu bitów $n$, żeby $2^n \ge$ liczba możliwości. Dla 36: $2^5=32$ za mało, $2^6=64$ wystarcza → 6 bitów. Dla 366: $2^8=256$ za mało, $2^9=512$ wystarcza → 9 bitów. To pytanie — „ile bitów na tyle możliwości" — dostanie w jednostce 2.7 własne narzędzie matematyczne.
🔍 Sprawdź, czy umiesz
- Wyjaśnić bratu/siostrze, dlaczego komputer woli dwa stany od dziesięciu.
- Przejść między zapisem binarnym a dziesiętnym w obie strony bez ściągi.
- Powiedzieć bez liczenia, ile wartości mieści 10 bitów.