Вот прога только для целых чисел. С нецелыми можно доделать самому. Работает с люьой системой счисления. До 16 (включительно) точно работает, дальше не проверял.
Code
program Vozved_v_lub_stepen;
uses crt;
var
s: string[8];
c, i, t: byte;
r: longint;
code: integer;
function Step(k: byte): word;
var
l: byte;
d: word;
begin
d := 1;
for l := 1 to k do
d := d * c;
Step := d;
end;
begin
clrscr;
writeln('Vvedite chislo');
readln(s);
writeln('Vvedite systemu schisleniya');
readln(c);
for i := 1 to length(s) do
begin
val(s[i], t, code);
if code = 1 then t := ord(upcase(s[i])) - 55;
r := r + t * step(length(s) - i);
end;
writeln(r);
readkey;
end.