Wróć do: Algorytmy
podstawowy systemy liczbowebinarnematura podstawowa z informatyki

Konwersja binarno-dziesiętna

Zamienia liczbę z systemu binarnego na odpowiednik dziesiętny przez sumowanie potęg dwójki.

01

Opis

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ę.

02

Pseudokod

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
03

Implementacja w Pythonie

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
04

Ćwiczenie

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 binarnaWartość dziesiętna
0010
0101
1000
1100

Wagi kolejnych pozycji (licząc od prawej) to: , , oraz .

Złożoność obliczeniowa

CzasowaO(n)
PamięciowaO(1)

Powiązane zagadnienia