var
d, n: longint;
h: string;
begin
write('n? ');
readln(n);
repeat
d := n mod 16;
if d < 10 then
h := chr(ord('0') + d) + h
else
h := chr(ord('A') - 10 + d) + h;
n := n div 16;
until n = 0;
writeln(h, 'h');
end.
Другие языки программирования и технологии
Помогите с паскалем. Помогите написать программу переводящую из 10-ой в 16-ую систему счисления на паскале
А на мой взгляд, лучше вот так!
const
Hex : array [0..15] of Char = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F');
var
N : Longint;
H : String;
begin
Write('Введите положительное число в десятичной СС: '); ReadLn(N);
H := '';
repeat
H := Hex[N mod 16] + H;
N := N div 16;
until N = 0;
WriteLn('В шестнадцатеричной СС: ', H);
end.
Главное:
— алгоритм в таком виде более прозрачен и нагляден
— так алгоритм работает гораздо быстрее (для такой маленькой программы это не критично, но если подобная функция во время работы программы будет вызвана большое количество раз, то результат будет более чем заметен)
— данная программа в скомпилированном виде будет чуть больше, чем предыдущего отвечающего… Но кто считает нынче байты, когда программы доходят до сотен мегабайт ;-)
Соглашусь, что со строками здесь немного не оптимально…
const
Hex : array [0..15] of Char = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F');
var
N : Longint;
H : String;
begin
Write('Введите положительное число в десятичной СС: '); ReadLn(N);
H := '';
repeat
H := Hex[N mod 16] + H;
N := N div 16;
until N = 0;
WriteLn('В шестнадцатеричной СС: ', H);
end.
Главное:
— алгоритм в таком виде более прозрачен и нагляден
— так алгоритм работает гораздо быстрее (для такой маленькой программы это не критично, но если подобная функция во время работы программы будет вызвана большое количество раз, то результат будет более чем заметен)
— данная программа в скомпилированном виде будет чуть больше, чем предыдущего отвечающего… Но кто считает нынче байты, когда программы доходят до сотен мегабайт ;-)
Соглашусь, что со строками здесь немного не оптимально…
Похожие вопросы
- как переводить из 16-ную в 10-чную из 10-чную в 16-чную систему счисления на ассемблере без калькулятора
- Паскаль. Помогите написать программу.
- Как перевести из 16-и ричной системы любое число в 2-ую, 8-ую и 10-ую системы счисления?
- Системы счисления в паскале
- как сделать в Паскале задачу/программу по переводу числа из десятичной в римскую систему счисления???
- Помогите написать программу на паскале
- Помогите написать программу в Турбо паскале.
- Помогите написать программу на Паскале!
- помогите написать программу на паскале!!! если можно напишите в комментах что где делаете!!!
- Ребят, помогите написать программу для Паскаля!