
Jak działa zapis dwójkowy
W systemie dziesiętnym każda cyfra ma wagę będącą potęgą dziesiątki: jedności, dziesiątki, setki. W systemie dwójkowym wagami są kolejne potęgi dwójki, liczone od prawej strony: 1, 2, 4, 8, 16 i tak dalej. Cyfra 1 oznacza „ta waga wchodzi do sumy”, cyfra 0 „nie wchodzi”.
Liczba 1101 to więc 1 · 8 + 1 · 4 + 0 · 2 + 1 · 1 = 13.
Tabela potęg dwójki
Przesuń tabelę, aby zobaczyć wszystkie kolumny →
| Potęga | 2⁰ | 2¹ | 2² | 2³ | 2⁴ | 2⁵ | 2⁶ | 2⁷ | 2⁸ | 2⁹ | 2¹⁰ |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Wartość | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 |
Tę tabelę warto znać na pamięć co najmniej do 2⁸. Pomaga w obu kierunkach zamiany.
Zamiana dziesiętnej na binarną
Metoda 1: dzielenie przez 2
- Dziel liczbę przez 2 i zapisz resztę (0 albo 1).
- Wynik dzielenia (bez reszty) dziel znowu przez 2.
- Powtarzaj, aż dojdziesz do 0.
- Przepisz reszty od ostatniej do pierwszej.
Przykład: 25.
Przesuń tabelę, aby zobaczyć wszystkie kolumny →
| Dzielenie | Iloraz | Reszta |
|---|---|---|
| 25 : 2 | 12 | 1 |
| 12 : 2 | 6 | 0 |
| 6 : 2 | 3 | 0 |
| 3 : 2 | 1 | 1 |
| 1 : 2 | 0 | 1 |
Reszty od dołu do góry dają 11001. Sprawdzenie: 16 + 8 + 1 = 25.
Przykład: 100. Kolejne reszty to 0, 0, 1, 0, 0, 1, 1, więc 100 w systemie dwójkowym to 1100100 (64 + 32 + 4 = 100).
Metoda 2: odejmowanie potęg dwójki
Znajdź największą potęgę dwójki, która mieści się w liczbie, odejmij ją i powtórz z resztą. Na każdej pozycji, której potęga weszła do sumy, wpisz 1, na pozostałych 0.
Przykład: 45. Największa potęga mieszcząca się w 45 to 32, zostaje 13. Potem 16 się nie mieści, 8 się mieści (zostaje 5), 4 się mieści (zostaje 1), 2 się nie mieści, 1 się mieści.
Przesuń tabelę, aby zobaczyć wszystkie kolumny →
| Waga | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|
| Cyfra | 1 | 0 | 1 | 1 | 0 | 1 |
Wynik: 45 = 101101.
Zamiana binarnej na dziesiętną
Podpisz pod każdą cyfrą jej wagę (od prawej: 1, 2, 4, 8, …) i dodaj wagi tam, gdzie stoi jedynka.
Przykład: 101101. Wagi od lewej: 32, 16, 8, 4, 2, 1. Jedynki stoją przy 32, 8, 4 i 1, więc 32 + 8 + 4 + 1 = 45.
Drugi sposób nie wymaga pamiętania wag: czytaj cyfry od lewej, za każdym razem podwajaj dotychczasowy wynik i dodaj bieżącą cyfrę. Dla 1101: 1, potem 1 · 2 + 1 = 3, potem 3 · 2 + 0 = 6, potem 6 · 2 + 1 = 13.
Bity i bajty
Pojedyncza cyfra binarna to bit. Bit przyjmuje jedną z dwóch wartości, zwykle oznaczanych jako 0 i 1. Bajt to najczęściej 8 bitów, więc może przyjąć jedną z 256 różnych wartości.
Przesuń tabelę, aby zobaczyć wszystkie kolumny →
| Liczba bitów | Najmniejsza liczba | Największa liczba | Ile wartości |
|---|---|---|---|
| 1 | 0 | 1 | 2 |
| 4 | 0 | 15 | 16 |
| 8 (bajt) | 0 | 255 | 256 |
| 10 | 0 | 1023 | 1024 |
| 16 | 0 | 65535 | 65536 |
Ogólna reguła: n bitów daje 2ⁿ różnych wartości, a największą z nich jest 2ⁿ − 1 (same jedynki). Dlatego 11111111 to 255, a nie 256.
Liczby zapisuje się często ze stałą liczbą cyfr, uzupełniając początek zerami. Liczba 5 w bajcie to 00000101. Zera z przodu nie zmieniają wartości, tak jak 007 równa się 7.
Mnożenie przez 2
Dopisanie zera na końcu liczby binarnej podwaja ją, tak jak dopisanie zera w systemie dziesiętnym mnoży przez 10. Liczba 101 (5) po dopisaniu zera to 1010 (10).
Dodawanie w systemie dwójkowym
Dodajesz kolumnami od prawej, jak na papierze. Reguły są cztery, a przeniesienie pojawia się przy sumie 2:
Przesuń tabelę, aby zobaczyć wszystkie kolumny →
| Dodawanie | Wynik | Zapis |
|---|---|---|
| 0 + 0 | 0 | 0 |
| 0 + 1 | 1 | 1 |
| 1 + 1 | 2 | 10 (piszesz 0, przenosisz 1) |
| 1 + 1 + 1 (z przeniesieniem) | 3 | 11 (piszesz 1, przenosisz 1) |
Przykład: 1101 + 1011.
- Kolumna 1 (prawa): 1 + 1 = 10, piszesz 0, przenosisz 1.
- Kolumna 2: 0 + 1 + 1 (przeniesienie) = 10, piszesz 0, przenosisz 1.
- Kolumna 3: 1 + 0 + 1 (przeniesienie) = 10, piszesz 0, przenosisz 1.
- Kolumna 4: 1 + 1 + 1 (przeniesienie) = 11, piszesz 1, przenosisz 1.
- Przeniesienie z ostatniej kolumny dopisujesz z przodu.
Wynik: 11000, czyli 24. Sprawdzenie w systemie dziesiętnym: 13 + 11 = 24.
Drugi przykład: 111 + 1. Przeniesienie przechodzi przez wszystkie kolumny: 7 + 1 = 8, czyli 1000.
Trzeci przykład: 101101 + 11011 daje 1001000, czyli 45 + 27 = 72.
System binarny w Pythonie
Python ma gotowe narzędzia. Funkcja bin() zwraca napis z prefiksem „0b”, a int() z drugim argumentem oznaczającym podstawę zamienia napis z cyframi na liczbę. Format 08b uzupełnia zapis zerami do ośmiu cyfr.
print(bin(25)) # 0b11001
print(bin(25)[2:]) # 11001 (bez prefiksu)
print(int("11001", 2)) # 25
print(format(5, "08b")) # 00000101
print(bin(0b1101 + 0b1011)) # 0b11000
Ten sam algorytm dzielenia przez 2 i schemat podwajania można zapisać własnymi funkcjami:
def na_binarny(n):
if n == 0:
return "0"
bity = []
while n > 0:
bity.append(str(n % 2))
n //= 2
return "".join(reversed(bity))
def na_dziesietny(napis):
wynik = 0
for znak in napis:
wynik = wynik * 2 + int(znak)
return wynik
print(na_binarny(100)) # 1100100
print(na_dziesietny("101101")) # 45
Kod uruchomiono w Pythonie 3.13; dla przykładowych liczb od 0 do 1000 funkcje dają te same wyniki co bin() i int(). W funkcji na_binarny reszta z dzielenia (n % 2) jest kolejnym bitem od końca, a dzielenie całkowite (n //= 2) odpowiada krokom z tabeli dzielenia.
Najczęstsze błędy
- Czytanie reszt od początku. Reszty z dzielenia przez 2 przepisujesz od ostatniej do pierwszej.
- Pomylenie wag. Wagi rosną od prawej, a nie od lewej: skrajna prawa cyfra ma wagę 1.
- Zapomniane przeniesienie przy dodawaniu. Suma 1 + 1 daje 10, nie 2: cyfry „2” w systemie dwójkowym nie ma.
- Cyfra inna niż 0 i 1. Zapis 1021 nie jest liczbą binarną.
- Pomylenie największej liczby w bajcie. Przy 8 bitach największa liczba to 255, a wartości jest 256.
- Brak sprawdzenia. Zamień wynik z powrotem na system dziesiętny; wynik musi wrócić do liczby wyjściowej.
Zobacz też: Algorytm, Matura z informatyki, Sortowanie bąbelkowe.
Najczęstsze pytania (FAQ)
Co to jest system binarny?
To pozycyjny system liczbowy o podstawie 2, w którym używa się tylko cyfr 0 i 1. Nazywa się go też systemem dwójkowym.
Jak zamienić liczbę na system binarny?
Dziel ją przez 2 z resztą, powtarzaj dla ilorazu aż do zera i przepisz reszty od ostatniej do pierwszej. Można też odejmować kolejne największe potęgi dwójki i zaznaczać jedynki w ich miejscach.
Jak zamienić liczbę binarną na dziesiętną?
Pomnóż każdą cyfrę przez jej wagę (potęgę dwójki, od prawej: 1, 2, 4, 8, …) i dodaj wyniki. Wystarczy zsumować wagi tam, gdzie stoi 1.
Ile bitów ma bajt?
Bajt to najczęściej 8 bitów, więc przyjmuje wartości od 0 do 255, czyli 256 różnych liczb.
Ile to jest 1 + 1 w systemie dwójkowym?
10, czyli dwa w zapisie dwójkowym. Zapisujesz 0 w tej kolumnie i przenosisz 1 do następnej.
Dlaczego komputery używają systemu binarnego?
Układ cyfrowy najprościej rozróżnia dwa stany, a bit przyjmuje właśnie dwie wartości: 0 i 1. Z takich bitów składa się każda informacja zapisana w pamięci komputera.
Jak sprawdzić zamianę w Pythonie?
Użyj bin(n) dla zamiany na dwójkowy i int("napis", 2) dla zamiany z powrotem. Wynik bin() zaczyna się od „0b”, które nie jest częścią liczby.