Funkcja to_base: reszty z dzielenia

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

Algorytm z kartki łatwo zapisać jako funkcję. Dzielimy `n` przez podstawę `b`, resztę zamieniamy na cyfrę i dopisujemy **z przodu** tekstu (bo reszty czyta się od końca). Cyfry powyżej 9 bierzemy z tekstu `DIGITS`: reszta 10 to `DIGITS[10] == "A"`, 15 to `"F"`. Liczbę 0 trzeba obsłużyć osobno: pętla `while n > 0` nie wykona się ani razu.

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

print(to_base(13, 2), to_base(500, 8), to_base(2026, 16), to_base(0, 2))
print(bin(13), oct(500), hex(2026))

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

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