Перевод из десятеричной в шестнадцатеричную

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

95 / 16 = 5 (остаток 15, т.е. F) --> F 5 уже не делим, ибо оно меньше чем 16. --> 5F Получается примерно так:
code: #delphi
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;

автор: Vovan-VE

Поделиться:

Похожие статьи: