Systemy liczbowe to różne metody reprezentacji liczb. Każdy system liczbowy jest oparty na podstawie (bazie) i wykorzystuje określony zestaw symboli do reprezentacji liczb. Najczęściej używane systemy liczbowe to dziesiętny, binarny, ósemkowy i szesnastkowy.
Podstawowe systemy liczbowe
System dziesiętny
Podstawa: 10
Symbole: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Przykład: 123 w systemie dziesiętnym oznacza 1×102+2×101+3×100=123
System binarny
Podstawa: 2
Symbole: 0, 1
Przykład: 1011 w systemie binarnym oznacza 1×23+0×22+1×21+1×20=11 w systemie dziesiętnym
System ósemkowy
Podstawa: 8
Symbole: 0, 1, 2, 3, 4, 5, 6, 7
Przykład: 17 w systemie ósemkowym oznacza 1×81+7×80=15 w systemie dziesiętnym
System szesnastkowy
Podstawa: 16
Symbole: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Przykład: 1A w systemie szesnastkowym oznacza 1×161+10×160=26 w systemie dziesiętnym (gdzie A = 10)
Konwersje między systemami liczbowymi
Konwersje między różnymi systemami liczbowymi są powszechne, szczególnie w informatyce.
Poniżej kilka przykładów konwersji między tymi systemami:
Zamiana liczby zapisanej w systemie dziesiętnym na system binarny
- Podziel liczbę dziesiętną przez 2.
- Zanotuj resztę.
- Podziel wynik przez 2.
- Powtórz kroki 2-3, aż wynik będzie 0.
- Odczytaj reszty od dołu do góry.
Przykład: konwersja liczby 13 na system binarny:
- 13 ÷ 2 = 6 reszta 1
- 6 ÷ 2 = 3 reszta 0
- 3 ÷ 2 = 1 reszta 1
- 1 ÷ 2 = 0 reszta 1
Wynik: 1101
Zamiana liczby zapisanej w systemie binarnym na system dziesiętny
Każdą cyfrę w liczbie binarnej pomnóż przez 2 podniesione do odpowiedniej potęgi, zaczynając od 0 od prawej do lewej. Dodaj wyniki.
Przykład: konwersja 1011 na system dziesiętny:
1×23+0×22+1×21+1×20=8+0+2+1=11
Zamiana liczby zapisanej w systemie dziesiętnym na system szesnastkowy
- Podziel liczbę przez 16.
- Zanotuj resztę (użyj liter A-F dla reszt 10-15).
- Podziel wynik przez 16.
- Powtórz kroki 2-3, aż wynik będzie 0.
- Odczytaj reszty od dołu do góry.
Przykład: konwersja liczby 254 na system szesnastkowy:
- 254 ÷ 16 = 15 reszta 14 (E)
- 15 ÷ 16 = 0 reszta 15 (F)
Wynik: FE
Zamiana liczby zapisanej w systemie szesnastkowym na system dziesiętny
- Każdą cyfrę w liczbie szesnastkowej pomnóż przez 16 podniesione do odpowiedniej potęgi, zaczynając od 0 od prawej do lewej.
- Dodaj wyniki.
Przykład: konwersja 1A na system dziesiętny:
1×161+10×160=16+10=26
Implementacja zamiany liczb pomiędzy systemami w programie Python
Poniżej znajduje się przykładowa implementacja konwersji liczb między różnymi systemami liczbowymi w programie Python.
def dec_to_bin(n):
return bin(n).replace("0b", "")
def bin_to_dec(b):
return int(b, 2)
def dec_to_hex(n):
return hex(n).replace("0x", "").upper()
def hex_to_dec(h):
return int(h, 16)
def dec_to_oct(n):
return oct(n).replace("0o", "")
def oct_to_dec(o):
return int(o, 8)
# Przykład użycia
decimal_number = 254
print(f"Liczba dziesiętna: {decimal_number}")
print(f"Binarnie: {dec_to_bin(decimal_number)}")
print(f"Szesnastkowo: {dec_to_hex(decimal_number)}")
print(f"Ósemkowo: {dec_to_oct(decimal_number)}")
binary_number = "11111110"
hexadecimal_number = "FE"
octal_number = "376"
print(f"Binarnie: {binary_number} na dziesiętnie: {bin_to_dec(binary_number)}")
print(f"Szesnastkowo: {hexadecimal_number} na dziesiętnie: {hex_to_dec(hexadecimal_number)}")
print(f"Ósemkowo: {octal_number} na dziesiętnie: {oct_to_dec(octal_number)}")
Wyjaśnienie kodu
Funkcje konwersji:
dec_to_bin(n): konwertuje liczbę dziesiętną na binarną.
bin_to_dec(b): konwertuje liczbę binarną na dziesiętną.
dec_to_hex(n): konwertuje liczbę dziesiętną na szesnastkową.
hex_to_dec(h): konwertuje liczbę szesnastkową na dziesiętną.
dec_to_oct(n): konwertuje liczbę dziesiętną na ósemkową.
oct_to_dec(o): konwertuje liczbę ósemkową na dziesiętną.
Przykłady użycia:
Konwersje liczb dziesiętnych na binarne, szesnastkowe i ósemkowe oraz odwrotnie.
Komentarze