Konwersje liczbowe: system dwójkowy, ósemkowy, szesnastkowy
W informatyce i matematyce liczby mogą być reprezentowane w różnych systemach liczbowych. Systemy te różnią się bazą, co oznacza, że do ich zapisu używa się różnych zestawów cyfr. Najczęściej stosowane to system dwójkowy (binarny), ósemkowy i szesnastkowy. W tym artykule omówimy, jak działają te systemy, oraz przedstawimy praktyczne metody konwersji liczb między nimi.
Czym są systemy liczbowe?
System liczbowy to sposób zapisywania liczb przy użyciu określonej liczby cyfr. Baza systemu (nazywana również podstawą) określa, ile cyfr jest dostępnych do reprezentowania liczb.
- System dziesiętny (baza 10): Najbardziej powszechny system, używany na co dzień, składa się z cyfr od 0 do 9.
- System dwójkowy (baza 2): Używany w informatyce, składa się tylko z cyfr 0 i 1.
- System ósemkowy (baza 8): Zawiera cyfry od 0 do 7.
- System szesnastkowy (baza 16): Zawiera cyfry od 0 do 9 oraz litery od A do F (gdzie A=10, B=11, …, F=15).
System dwójkowy (binarny)
System dwójkowy wykorzystuje tylko dwie cyfry: 0 i 1. Jest to podstawowy system używany w komputerach, ponieważ odpowiada fizycznym stanom urządzeń elektronicznych (np. włączony/wyłączony).
Przykład liczby w systemie dwójkowym:
Liczba 1011 w systemie dwójkowym to:
1⋅23+0⋅22+1⋅21+1⋅20=8+0+2+1=111 \cdot 2^3 + 0 \cdot 2^2 + 1 \cdot 2^1 + 1 \cdot 2^0 = 8 + 0 + 2 + 1 = 11 w systemie dziesiętnym.
System ósemkowy
System ósemkowy używa cyfr od 0 do 7. Jest stosowany w niektórych językach programowania oraz w przeszłości był popularny w kodowaniu maszynowym.
Przykład liczby w systemie ósemkowym:
Liczba 17 w systemie ósemkowym to:
1⋅81+7⋅80=8+7=151 \cdot 8^1 + 7 \cdot 8^0 = 8 + 7 = 15 w systemie dziesiętnym.
System szesnastkowy
System szesnastkowy używa cyfr od 0 do 9 oraz liter od A do F. Jest szczególnie popularny w programowaniu, np. w adresowaniu pamięci lub reprezentacji kolorów w HTML/CSS.
Przykład liczby w systemie szesnastkowym:
Liczba 1F w systemie szesnastkowym to:
1⋅161+15⋅160=16+15=311 \cdot 16^1 + 15 \cdot 16^0 = 16 + 15 = 31 w systemie dziesiętnym.
Konwersje między systemami liczbowymi
Konwersja z systemu dwójkowego na dziesiętny
Aby przekonwertować liczbę binarną na dziesiętną, należy pomnożyć każdą cyfrę przez odpowiednią potęgę liczby 2 i zsumować wyniki.
Przykład:
Liczba binarna 1101:
1⋅23+1⋅22+0⋅21+1⋅20=8+4+0+1=131 \cdot 2^3 + 1 \cdot 2^2 + 0 \cdot 2^1 + 1 \cdot 2^0 = 8 + 4 + 0 + 1 = 13
Konwersja z systemu dziesiętnego na dwójkowy
Aby przekonwertować liczbę dziesiętną na binarną, należy dzielić ją przez 2, zapisując reszty z dzielenia.
Przykład:
Liczba dziesiętna 13:
- 13÷2=613 \div 2 = 6, reszta: 1
- 6÷2=36 \div 2 = 3, reszta: 0
- 3÷2=13 \div 2 = 1, reszta: 1
- 1÷2=01 \div 2 = 0, reszta: 1
Wynik (odczytywany od dołu): 1101
Konwersja z systemu dwójkowego na ósemkowy
Grupujemy cyfry binarne po trzy (od prawej strony) i przeliczamy każdą grupę na system ósemkowy.
Przykład:
Liczba binarna 110101:
Grupy: 110110, 101101
110=6110 = 6, 101=5101 = 5
Wynik: 65 w systemie ósemkowym.
Konwersja z systemu dwójkowego na szesnastkowy
Grupujemy cyfry binarne po cztery (od prawej strony) i przeliczamy każdą grupę na system szesnastkowy.
Przykład:
Liczba binarna 11101101:
Grupy: 11101110, 11011101
1110=E1110 = E, 1101=D1101 = D
Wynik: ED w systemie szesnastkowym.
Konwersja z systemu szesnastkowego na dziesiętny
Każdą cyfrę w liczbie szesnastkowej mnożymy przez odpowiednią potęgę liczby 16 i sumujemy wyniki.
Przykład:
Liczba szesnastkowa 1A:
1⋅161+10⋅160=16+10=261 \cdot 16^1 + 10 \cdot 16^0 = 16 + 10 = 26
Zastosowania systemów liczbowych
System dwójkowy
- Programowanie maszynowe
- Przechowywanie danych w komputerze
- Logika cyfrowa
System ósemkowy
- Kodowanie maszynowe w przeszłości
- Reprezentacja uprawnień w systemach Unix/Linux
System szesnastkowy
- Reprezentacja kolorów (np. #FF5733 w HTML)
- Adresowanie pamięci
- Debugowanie kodu
Podsumowanie
Znajomość systemów liczbowych, takich jak dwójkowy, ósemkowy czy szesnastkowy, oraz umiejętność konwersji między nimi to kluczowa wiedza w dziedzinie informatyki i elektroniki. Każdy z systemów ma swoje specyficzne zastosowania i zalety, dlatego warto je poznać i umieć wykorzystywać w praktyce. Niezależnie od tego, czy programujesz, administrujesz siecią, czy analizujesz dane, wiedza na ten temat może okazać się nieoceniona.