program i_tak_nie_zdasz;
uses math,sysutils;

function any2dec(input:string; base:integer):integer;
var
  output,c,i,l,v:integer;
begin  
  output := 0;
  c := 0;
  l := Length(input);
  for i := l downto 1 do
  begin
    case input[i] of
      'A': begin v := 10; end;
      'B': begin v := 11; end;
      'C': begin v := 12; end;
      'D': begin v := 13; end;
      'E': begin v := 14; end;
      'F': begin v := 15; end;
      else v := StrToInt(input[i]);
    end;
    output := output + (v * floor(power(base, c)));
    inc(c);
  end;
  any2dec := output;
end;

function dec2any(input:integer; base:integer):string;
var
  modv:integer;
  output:string;
begin
  output := '';
  while input > 0 do begin
    modv := input mod base;
    case modv of
      10: begin output := 'A' + output; end;
      11: begin output := 'B' + output; end;
      12: begin output := 'C' + output; end;
      13: begin output := 'D' + output; end;
      14: begin output := 'E' + output; end;
      15: begin output := 'F' + output; end;
    else output := IntToStr(modv) + output;
    end;
    input := floor(input/base);
  end;
  dec2any := output;
end;

begin
  writeln(any2dec('1011101', 2)); {z binarnego}
  writeln(any2dec('473', 8)); {z oktalnego}
  writeln(any2dec('A75', 16)); {z heksadecymalnego}

  writeln(dec2any(69, 2)); {na binarny}
  writeln(dec2any(142, 8)); {na oktalny}
  writeln(dec2any(3471, 16)); {na heksadecymalny}
  readln;
end.