Перевод десятичного числа в шестнадцатеричное
Пользователь вводит число, представленное в десятичной системе счисления. Программа должна преобразовывать его в число, выраженное в шестнадцатеричной системе счисления. Результат вывести на экран.
Алгоритм перевода десятичного числа в другую систему счисления одинаков. Однако в случае шестнадцатеричной системы он усложнен тем, что цифры с 10 до 15 должны быть заменены буквами.
Поэтому сначала находится остаток от деления на 16. Если он представляет собой двузначное число, то переменной ch присваивается соответствующий символ. Иначе происходит перевод цифры в ее символьное представление. Символ добавляется к строке.
Программа на языке Паскаль:
var
decimal: word;
function hexadecimal(decimal:word):string;
var digit: byte; ch: char;
begin
while decimal > 0 do begin
digit := decimal mod 16;
if digit in [10..15] then
case digit of
10: ch := 'A';
11: ch := 'B';
12: ch := 'C';
13: ch := 'D';
14: ch := 'E';
15: ch := 'F'
end
else
ch := chr(ord('0') + digit);
hexadecimal := ch + hexadecimal;
decimal := decimal div 16
end;
end;
begin
write('Decimal: ');
readln(decimal);
writeln(hexadecimal(decimal));
end.