Zamienia liczbę z systemu binarnego na odpowiednik dziesiętny przez sumowanie potęg dwójki.
Konwersja z systemu binarnego na dziesiętny polega na zamianie liczby zapisanej w systemie dwójkowym (cyfry 0 i 1) na jej odpowiednik w systemie dziesiętnym.
Każda cyfra binarna ma swoją wagę – jest to potęga dwójki odpowiadająca pozycji cyfry. Pozycje liczymy od prawej, zaczynając od 0. Wynik to suma iloczynów cyfr i ich wag.
Przykład: liczba binarna 1011 to 1·8 + 0·4 + 1·2 + 1·1 = 11.
Na maturze: klasyczne zadanie z konwersji systemów liczbowych. Często łączone z konwersją w drugą stronę.
funkcja binarna_na_dziesietna(B, n): // B - tablica cyfr binarnych, n - liczba cyfr wynik ← 0 potega ← 1 // iterujemy od najmłodszej cyfry (z prawej) dla i od n - 1 do 0 z krokiem -1: wynik ← wynik + B[i] * potega potega ← potega * 2 zwróć wynik
def binarna_na_dziesietna(b):
wynik = 0
potega = 1
# iterujemy od ostatniej cyfry do pierwszej
for i in range(len(b) - 1, -1, -1):
wynik += int(b[i]) * potega
potega *= 2
return wynik
# Przykład użycia
print(binarna_na_dziesietna("1011"))
# Wynik: 11
print(binarna_na_dziesietna("11111111"))
# Wynik: 255
Uzupełnij brakujące wartości, a następnie kliknij Sprawdź. Liczba binarna 1011 to w systemie dziesiętnym , a 1111 to .
Każda pozycja binarna ma wagę będącą potęgą dwójki. Uzupełnij wyniki konwersji w tabeli:
| Liczba binarna | Wartość dziesiętna |
|---|---|
| 0010 | |
| 0101 | |
| 1000 | |
| 1100 |
Wagi kolejnych pozycji (licząc od prawej) to: , , oraz .
O(n)O(1)Zagadnienia z tego samego obszaru matury – warto je powtórzyć razem: