«Искусство компьютерного программирования» Кнута, том 2. является отличным справочником по арифметике произвольной точности.
Простой способ получить представление с основанием 10 - это непрерывно делить число на 10, извлекается каждое делениеодна цифра (остаток).Это, очевидно, требует умения делить на 10 в любой базе, которая у вас уже есть.
Например, если ваш номер 321 десятичный или 101000001 двоичный, мы можем разделить:
10100001 двоичный на 1010 двоичный
100000 с остатком 1 (поэтому первая цифра равна 1 десятичному знаку)
разделите 100000 на 1010 двоичных данных
11 с остатком 10 (поэтому следующая цифра - 2 десятичных знака)
делим 11 на 1010 двоичных
0 с остатком 11 (поэтому последняя цифра - 3 десятичных)
Согласно: http://people.cis.ksu.edu/~rhowell/calculator/comparison.html это алгоритм преобразования радиуса, используемый в SunКласс Java BigInteger и сложность O (n ^ 2).Авторы в этой ссылке реализовали алгоритм O (n logn) на основе алгоритма, описанного в Knuth p.592 и зачислено А. Шёнхаге.