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

Самый логичный способ заключается в том, чтобы исходное число (например 95) делить на основание той системы, в которую надо перевести (например, в 16-ричную). Из остатков формируется конецное число с конца.

95 / 16 = 5 (остаток 15, т.е. F) —> F 5 уже не делим, ибо оно меньше чем 16. —> 5F Получается примерно так:

n10 := 95;
base := 16;
result := '';
while n10 >= base do
begin
  m := n10 mod base;
  case m of
    0 .. 9:
      result := Chr(Ord('0') + m) + result;
    10 .. 15:
      result := Chr(Ord('A') + m - 10) + result;
  end;
  n10 := n10 div base;
end;
if n10 > 0 then
begin
  case n10 of
    0 .. 9:
      result := Chr(Ord('0') + n10) + result;
    10 .. 15:
      result := Chr(Ord('A') + n10 - 10) + result;
  end;
end;

Leave a Comment