How to convert a number to any base in Pascal

1 Answer

0 votes
program BaseConvert;

function ToBase(n, base: LongInt): string;
const
  Digits: string = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var
  resultStr: string;
  remainder: LongInt;
begin
  if (base < 2) or (base > 36) then
  begin
    ToBase := '';
    Exit;
  end;

  if n = 0 then
  begin
    ToBase := '0';
    Exit;
  end;

  resultStr := '';

  while n > 0 do
  begin
    remainder := n mod base;
    resultStr := Digits[remainder + 1] + resultStr;
    n := n div base;
  end;

  ToBase := resultStr;
end;

var
  number: LongInt;
begin
  number := 255;

  Writeln(number, ' in base 2  = ', ToBase(number, 2));
  Writeln(number, ' in base 8  = ', ToBase(number, 8));
  Writeln(number, ' in base 16 = ', ToBase(number, 16));
  Writeln(number, ' in base 36 = ', ToBase(number, 36));
end.




(*
run:

255 in base 2  = 11111111
255 in base 8  = 377
255 in base 16 = FF
255 in base 36 = 73

*)


 



answered Feb 21 by avibootz
...