Перевод шестнадцатеричного числа в десятичное — Pascal(Паскаль)

 var a : string;
 
function HEX_DEC(x:string):longint;
const digits:array [0..15] of char =
      ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
var res,ves:longint; i,j:byte;
begin
   res:=0; ves:=1;
   for i:=length(x) downto 1 do begin
      j:=0; a[i]:=UpCase(a[i]);
      while (digits[j]<>x[i]) do inc(j);
      res:=res+ves*j;
      ves:=ves*16;
   end;
   HEX_DEC:=res;
end;
 
begin { основная программа }
  readln( a );
  writeln( HEX_DEC(a) );
end.

Leave a Comment

51 − = 42