Wróć do: Teoria
podstawowy systemy liczbowebinarnykonwersjamatura podstawowa z informatyki

Zamiana dziesiętny → binarny

Zamiana liczby dziesiętnej na binarną metodą kolejnych dzieleń przez 2 – jak zapisywać reszty i w którą stronę je czytać.

01

Opis

System binarny ma tylko dwie cyfry: 0 i 1. Każda pozycja to kolejna potęga dwójki, licząc od prawej: 1, 2, 4, 8, 16, 32 i tak dalej. Liczba 1011 to więc 8 + 0 + 2 + 1, czyli 11 dziesiętnie.

Żeby zamienić liczbę dziesiętną na binarną, dzielimy ją wielokrotnie przez 2 i zapisujemy reszty. Reszta z każdego dzielenia to jeden bit wyniku. Dzielimy tak długo, aż otrzymamy 0.

Najważniejszy szczegół, na którym wykłada się najwięcej osób: reszty czytamy od końca, czyli od ostatniej do pierwszej. Zapisane w kolejności powstawania dadzą liczbę odwróconą.

02

Jak to działa

Zamieniamy liczbę 13. Dzielimy przez 2 i notujemy reszty:

  • 13 dzielone przez 2 daje 6, reszta 1
  • 6 dzielone przez 2 daje 3, reszta 0
  • 3 dzielone przez 2 daje 1, reszta 1
  • 1 dzielone przez 2 daje 0, reszta 1

Reszty czytane od dołu do góry dają 1101. Sprawdzenie: 8 + 4 + 0 + 1 = 13. Zgadza się.

Istnieje też metoda odwrotna, często szybsza w pamięci: szukamy największej potęgi dwójki mieszczącej się w liczbie i odejmujemy ją, notując 1 na tej pozycji. Dla 13 to 8, zostaje 5; potem 4, zostaje 1; potem 1, zostaje 0. Pozycje 8, 4 i 1 dostają jedynkę, pozycja 2 dostaje zero.

03

Pseudokod

funkcja na_binarny(n):
  jeżeli n = 0:
    zwróć "0"
  bity  []
  dopóki n > 0:
    bity  [n mod 2] + bity
    n  n div 2
  zwróć bity
04

Implementacja w Pythonie

def na_binarny(n):
    if n == 0:
        return '0'
    bity = []
    while n > 0:
        bity.insert(0, n % 2)
        n //= 2
    return ''.join(map(str, bity))

Na maturze

Konwersje między systemami wracają regularnie – najczęściej jako pytanie zamknięte albo krótkie obliczenie na 1 punkt. Zdarza się też wersja odwrotna: dana liczba binarna, trzeba podać dziesiętną.

Warto umieć to zrobić na kartce, bez kalkulatora, bo pytanie potrafi paść w części, w której komputera nie używasz.

06

Zapamiętaj

  • Dzielimy przez 2 i zapisujemy reszty, aż dojdziemy do zera.
  • Reszty czytamy od ostatniej do pierwszej, nie w kolejności powstawania.
  • Kolejne pozycje binarne od prawej to 1, 2, 4, 8, 16, 32, 64, 128.
  • Liczba parzysta zawsze kończy się na 0, nieparzysta na 1 – to najszybsze sprawdzenie wyniku.
07

Najczęściej zadawane pytania

Jak szybko sprawdzić, czy wynik jest poprawny?

Zsumuj potęgi dwójki tam, gdzie stoi jedynka. Jeśli wyjdzie liczba wyjściowa, konwersja jest dobra. To zajmuje kilka sekund i wyłapuje najczęstszy błąd, czyli odwróconą kolejność bitów.

Ile bitów potrzeba na daną liczbę?

Tyle, ile wynosi pozycja najwyższej użytej potęgi dwójki. Na liczby od 0 do 255 wystarczy 8 bitów, bo 2 do potęgi 8 to 256 różnych wartości.

Czy zera z przodu mają znaczenie?

Nie zmieniają wartości – 0011 to to samo co 11. Dopisuje się je tylko wtedy, gdy zadanie wymaga zapisu na określonej liczbie bitów, na przykład na jednym bajcie.

Powiązane zagadnienia