Вот так можно переводить из 10ой в 16ую
Код:
function Dec2Hex(const Source: Integer): String;
var
Dec: Integer;
Hex: String;
begin
Dec := Source;
Hex := '';
while Dec <> 0 do
begin
case (Dec mod 16) of
10: Hex := 'A' + Hex;
11: Hex := 'B' + Hex;
12: Hex := 'C' + Hex;
13: Hex := 'D' + Hex;
14: Hex := 'E' + Hex;
15: Hex := 'F' + Hex;
else Hex := IntToStr(Dec mod 16) + Hex;
end;
Dec := Dec div 16;
end;
Result := Hex;
end;
А для сложения в других системах делай так: смотришь в какой системе у тебя числа, переводишь их в 10ую, производишь операции и делаешь перевод получившегося числа обратно