Тебе только function ToDec нужна. Идея такая: 1. Удаляем все ненужные нули (то есть вместо 0000009 получаем 9) 2. m (итоговое число) приравниваем к нулю 2. В цикле умножаем m на основание системы счисления, из которой переводили, и прибавляем следующую переведенную цифру (чтобы обрабатывать и буквенные обозначения цифр, используем строку, в которой содержатся все возможные значения цифр - для сс с основанием не больше 16 это от 0 до F)
ну например: 101 в двоичной m=0 берем первый символ (1): m:=0*2+положение 1 в строке цифр-1=1 второй символ m=1*2+положение 0 в строке цифр-1=2 третий символ m=2*2+положение 1 в строке цифр-1=5
то есть алгоритм такой же, как учат в школе: разряд умножаем на основание системы счисления в той или иной степени. так понятно?
--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует. На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
|