home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / GFXFX2.ZIP / CONVERT.PAS < prev    next >
Pascal/Delphi Source File  |  1995-02-14  |  1KB  |  44 lines

  1.  
  2. program convertsystems; { CONVERT.PAS }
  3. { Convert any system to any other system, by Bas van Gaalen }
  4. uses u_kb;
  5. const bin=2; oct=8; dec=10; hex=16;
  6. var num:string;
  7.  
  8. function power(src,pwr:byte):word;
  9. var dst:word; i:byte;
  10. begin
  11.   dst:=1;
  12.   for i:=1 to pwr do dst:=dst*src;
  13.   power:=dst;
  14. end;
  15.  
  16. procedure convert(sysfr,systo:byte; src:string; var dst:string);
  17. const numstr:array[0..35] of char='0123456789abcdefghijklmnopqrstuvwxyz';
  18. var tmpdst:string; result:real; len,i,j,pos:byte;
  19. begin
  20.   len:=length(src); result:=0;
  21.   for i:=1 to len do begin
  22.     pos:=255; j:=0;
  23.     while (j<length(numstr)) and (pos<>(j-1)) do begin
  24.       if upcase(src[i])=upcase(numstr[j]) then pos:=j;
  25.       inc(j);
  26.     end;
  27.     result:=result+pos*power(sysfr,len-i);
  28.   end;
  29.   tmpdst:='';
  30.   while result <> 0 do begin
  31.     result:=result/systo;
  32.     j:=round(frac(result)*systo);
  33.     insert(numstr[j],tmpdst,1);
  34.     result:=result-frac(result);
  35.   end;
  36.   dst:=tmpdst;
  37. end;
  38.  
  39. begin
  40.   convert(hex,dec,'abcd',num);
  41.   writeln(num);
  42.   waitkey(0);
  43. end.
  44.