Informatyka

System binarny: jak zamieniać liczby, bity i dodawanie

System binarny (dwójkowy): jak zamienić liczbę dziesiętną na binarną i odwrotnie, czym są bity i bajty, jak dodawać w systemie dwójkowym. Przykłady w Pythonie.

Ilustracja: kartka z liczbą zapisaną jedynkami i zerami obok kolumn potęg dwójki
Obraz wygenerowany przez AI

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ęga2⁰2¹2²2³2⁴2⁵2⁶2⁷2⁸2⁹2¹⁰
Wartość12481632641282565121024

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

  1. Dziel liczbę przez 2 i zapisz resztę (0 albo 1).
  2. Wynik dzielenia (bez reszty) dziel znowu przez 2.
  3. Powtarzaj, aż dojdziesz do 0.
  4. Przepisz reszty od ostatniej do pierwszej.

Przykład: 25.

Przesuń tabelę, aby zobaczyć wszystkie kolumny →

DzielenieIlorazReszta
25 : 2121
12 : 260
6 : 230
3 : 211
1 : 201

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 →

Waga32168421
Cyfra101101

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ówNajmniejsza liczbaNajwiększa liczbaIle wartości
1012
401516
8 (bajt)0255256
10010231024
1606553565536

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 →

DodawanieWynikZapis
0 + 000
0 + 111
1 + 1210 (piszesz 0, przenosisz 1)
1 + 1 + 1 (z przeniesieniem)311 (piszesz 1, przenosisz 1)

Przykład: 1101 + 1011.

  1. Kolumna 1 (prawa): 1 + 1 = 10, piszesz 0, przenosisz 1.
  2. Kolumna 2: 0 + 1 + 1 (przeniesienie) = 10, piszesz 0, przenosisz 1.
  3. Kolumna 3: 1 + 0 + 1 (przeniesienie) = 10, piszesz 0, przenosisz 1.
  4. Kolumna 4: 1 + 1 + 1 (przeniesienie) = 11, piszesz 1, przenosisz 1.
  5. 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.

← Więcej: Informatyka