How to convet decimal number base-12 number in Pascal

1 Answer

0 votes
program DecimalToBase12;

// Reverses a string manually
function ReverseString(s: String): String;
var
  i: Integer;
  reversed: String;
begin
  reversed := '';
  for i := Length(s) downto 1 do
    reversed := reversed + s[i];
  ReverseString := reversed;
end;

// Converts a decimal number to base-12 and returns it as a string
function DecimalToBase12(decimalNumber: Integer): String;
const
  digits: array[0..11] of Char = ('0','1','2','3','4','5','6','7','8','9','A','B'); // Base-12 digits (A = 10, B = 11)
var
  base12: String;
  remainder: Integer;
begin
  if decimalNumber = 0 then
  begin
    DecimalToBase12 := '0';
    Exit;
  end;

  base12 := '';
  while decimalNumber > 0 do
  begin
    remainder := decimalNumber mod 12;
    base12 := base12 + digits[remainder];
    decimalNumber := decimalNumber div 12;
  end;

  // Reverse to get the correct order
  DecimalToBase12 := ReverseString(base12);
end;

var
  decimalNumber: Integer;
  base12Number: String;

begin
  decimalNumber := 100;
  base12Number := DecimalToBase12(decimalNumber);

  WriteLn('Base-12 representation: ', base12Number);

  decimalNumber := 19621;
  base12Number := DecimalToBase12(decimalNumber);

  WriteLn('Base-12 representation: ', base12Number);
end.



(*
run:

Base-12 representation: 84
Base-12 representation: B431

*)

 



answered Sep 10, 2025 by avibootz
edited Sep 11, 2025 by avibootz

Related questions

1 answer 72 views
1 answer 73 views
1 answer 68 views
1 answer 65 views
1 answer 85 views
...