Převod soustav

O(log_b(a))

Každé kladné celé číslo lze jednoznačně zapsat v libovolné soustavě se základem b ≥ 2 opakovaným dělením základem a sbíráním zbytků. Každý zbytek je jedna cifra výsledku v nové soustavě — vznikají od nejméně významné; obrácením pořadí dostaneme výsledný zápis. Pro základy nad 9 se cifry 10–15 zapisují písmeny A–F (hexadecimální konvence). Tento algoritmus stojí za binárním, oktalovým a hexadecimálním zápisem čísel v informatice.

Posloupnost
Stiskni ▶ a spusť
Uprav vstup a stiskni Přehrát

Jak to funguje

  1. Omezíme základ na rozsah 2–16
  2. Vydělíme a základem; zbytek je další cifra (od nejméně významné)
  3. Cifru přidáme na začátek výsledku; a nahradíme podílem
  4. Opakujeme, dokud a ≠ 0; sebrané cifry tvoří zápis v nové soustavě

Pseudokód

1toBase(a, base):                      # O(log_base(a))2  base = clamp(base, 2, 16)3  digits = []4  while a > 0:5    digits.prepend(DIGITS[a % base])  # least-significant first → prepend6    a = floor(a / base)7  return digits.join("")