Zamiana liczby dziesiętnej na binarną metodą kolejnych dzieleń przez 2 – jak zapisywać reszty i w którą stronę je czytać.
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ą.
Zamieniamy liczbę 13. Dzielimy przez 2 i notujemy reszty:
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.
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
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))
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.
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.
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.
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.
Zagadnienia z tego samego obszaru matury – warto je powtórzyć razem: