Универсальный алгоритм (для целых чисел), думаю, будет выглядеть так.
Делимое - число, которое нужно переводить.
Делитель - основание системы счисления в которую нужно перевести, но записанное в системе счисления делимого.
Далее идёт процесс последовательного деления, но операции производятся в системе счисления делимого.
Потом последнее частное, а также полученные остатки заменяют соответствующими цифрами системы счисления в которую переводится число.
Рассмотрим вопрос на примере перевода двоичного числа 100100011
в восьмеричную c/c.
При этом параллельно покажем это с использованием 10-й системы.
Делимое - 100100011(2) =291(10)
Делитель - 8(10)=1000(2) =8(10)
100100011│ 1000 291│ 8
-100100000└─────── -288└───
───────── 100100 │ 1000 ─── 36│ 8
11 -100000 └───── 3 -32└───
│ ────── 100 ── 4
│ 100 │ 4
│ │ │
│ │ 4
3 4
Записываем последовательно разряды числа снизу вверх. Начинаем
с последнего частного, затем идя вверх записываем все остатки.
Полученное число в 8 c/c: 443