Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Перевод длинного числа в другую систему счисления


Автор: AlexP11223 22.10.2011, 13:00
Как перевести длинное число из СС от 2 до 10 в 16 и обратно? Хотя бы алгоритм. Числа пока в виде строк.
 

Автор: Чучмек 22.10.2011, 14:20
Умножаешь старшую цифру числа на основание, к произведению прибавляешь следующую цифру, сумму умножаешь на основание и тд
Число ABCD c основанием X  можно представить как D+C*X+B*X^2+A*X^3= ( (A*X+B)*X+C)*X+D  
Например для десятичной системы
78923=3+2*10+9*100+8*1000+7*10000=((((7*10)+8)*10+9)*10+2)*10+3

Автор: AlexP11223 22.10.2011, 16:19
А не слишком ли много операцией получится для длинного числа (50-80 знаков)? Других способов перевода нету? Или как это организовать, чтобы считало за приемлемое время?

Автор: Чучмек 23.10.2011, 01:28
Быстрей... Ну разве что по частям 
В двоичной - 10111001 в шестнадцатеричной B9 или 1011=B 1001=9  -> [1011][1001]=[B][9]

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)