Systemy dziesiętny, binarny, ósemkowy i szesnastkowy - zamiana pomiędzy systemami

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

  1. Podziel liczbę dziesiętną przez 2.
  2. Zanotuj resztę.
  3. Podziel wynik przez 2.
  4. Powtórz kroki 2-3, aż wynik będzie 0.
  5. 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

  1. Podziel liczbę przez 16.
  2. Zanotuj resztę (użyj liter A-F dla reszt 10-15).
  3. Podziel wynik przez 16.
  4. Powtórz kroki 2-3, aż wynik będzie 0.
  5. 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

  1. Każdą cyfrę w liczbie szesnastkowej pomnóż przez 16 podniesione do odpowiedniej potęgi, zaczynając od 0 od prawej do lewej.
  2. 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