Z dowolnego systemu na dowolny

Zamiana reprezentacji liczb w programie - Informatyka - liceum klasa 1 (Python)

Mając `from_base` i `to_base`, zamiana między dowolnymi systemami to dwa kroki **przez liczbę**: najpierw tekst w systemie `b1` zamieniamy na liczbę, potem liczbę na tekst w systemie `b2`. Przykład praktyczny: kolor na stronie WWW to trzy bajty (czerwony, zielony, niebieski) zapisane szesnastkowo po dwie cyfry, np. `#FF8000` to `(255, 128, 0)`.

DIGITS = "0123456789ABCDEF"

def to_base(n, b):
    if n == 0:
        return "0"
    result = ""
    while n > 0:
        result = DIGITS[n % b] + result
        n = n // b
    return result

def from_base(s, b):
    value = 0
    for ch in s.upper():
        value = value * b + DIGITS.index(ch)
    return value

def convert(s, b1, b2):
    return to_base(from_base(s, b1), b2)

print(convert("11111111", 2, 16))
print(convert("777", 8, 2))
color = "FF8000"
print(from_base(color[0:2], 16), from_base(color[2:4], 16), from_base(color[4:6], 16))

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu Informatyka - liceum klasa 1·Zaloguj się, aby zapisać postęp na koncie.