Перевод целого числа из десятичной системы счисления в шестнадцатеричную - Pascal
Формулировка задачи:
Нужно написать программу на Паскале. Помогите пожалуйста. И чем проще будут записи,тем лучше, я чайник в программировании.
Решение задачи: «Перевод целого числа из десятичной системы счисления в шестнадцатеричную»
textual
Листинг программы
uses crt;
const zn:string[16]='0123456789ABCDEF';//цифры в СС 16
var n:longint;
s:string;
begin
clrscr;
write('Число в системе 10=');
readln(n);
s:='';
while n>0 do
begin
s:=zn[n mod 16+1]+s;//берем остаток от деления на 16 и эту цифру пишем в начало строки
n:=n div 16;//сокращаем
end;
write(' В системе 16 =',s);
readln
end.
Объяснение кода листинга программы
- Объявление переменных:
zn- строковая константа, содержащая символы для представления цифр в шестнадцатеричной системе,n- переменная целочисленного типа, в которую будет введено число в десятичной системе,s- переменная строкового типа, в которую будет записываться число в шестнадцатеричной системе.
- Очистка экрана.
- Ввод числа:
- Вывод текста
Число в системе 10=, - Ввод числа в переменную
n.
- Вывод текста
- Преобразование числа из десятичной системы в шестнадцатеричную:
- Инициализация пустой строки
s. - Пока
nбольше 0, выполняются следующие шаги:- Берется остаток от деления
nна 16, прибавляется 1 (для получения индекса в строкеzn), и результат конкатенируется с переменнойs(записывается в начало строки), nделится на 16.
- Берется остаток от деления
- Инициализация пустой строки
- Вывод результата:
- Вывод строки
В системе 16 =с полученным результатом в переменнойs.
- Вывод строки
- Ожидание нажатия клавиши для завершения программы.