Помогите с переводом чисел с 10сс в 16сс Pascal
Написать программу перевода с 10сс в 16сс
должно же там быть чтото типа hex(число)
Либо найти встроенную функцию, типа hex
Либо искать остаток деления на 16, если меньше 10, то соответствующее число, если 10 - А, 11 - B, 12 - C, 13 - D, 14 - E, 15 - F - это будет младший разряд. Потом вычитаешь остаток, делишь на 16 и повторяешь, пока не закончится число
uses crt; //перевод из одной системы в другую
var n,m:longint;
k:integer;
l:string;
{фунция перевода любой сс в Dec}
function ToDec(n:string;r:longint):longint;
var
m,i:longint;
const
digit:string[16]='0123456789ABCDEF';
begin
m:=0;
while n[1]='0' do
delete(n,1,1);
for i:=1 to length(n) do
m:=m*r+pos(n,digit)-1;
ToDec:=m;
end;
{функция перевода Dec числа в любую сс}
function FromDec(n,r:longint):string;
var
s:String;
const
digit:string[16]='0123456789ABCDEF';
begin
s:='';
repeat
s:=digit[(n mod r)+1]+s;
n:=n div r;
until n=0;
FromDec:=s;
end;
begin
write('Введите число в десятиричной системе счисления -> ');
readln(N);
{write('Система счисления, в какую необходимо перевести (2..36)--> ');
readln(K);
l:= FromDec(n,k);
writeln(l); }
write('Система счисления, в какую необходимо перевести (2..36) ');
repeat
write('-> ');
readln(K);
until (2 <= k) and (k <= 36);
writeln(N, '(10)=', FromDec(N,k),'(',k,')');
end.
Всего одна строчка кода!
Всё остальное за паскаль сделает Windows…
