Zadání:
Sestavte funkci na převod desítkového čísla do hexadecimální soustavy.
Řešení:
Funkce je řešena postupným dělením zadaného desítkového čísla číslem 16 a na základě zbytku tohoto dělení se postupně
ke znakovému řetězci přidává zprava tento zbytek. Pokud je zbytek větší než 9, převedeme ho na příslušné písmeno
(A=10, B=11, C=12, D=13, E=14, F=15). Dělení končí, pokud výsledek bude nulový.
Př.:
11961 : 16 = 747, zb. 9
747 : 16 = 46, zb. 11 (=B)
46 : 16 = 2, zb. 14 (=E)
2 : 16 = 0, zb. 2
Výsledek: 2EB9
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
{ 07.06 Funkce na převod desítkového čísla do hexadecimální soustavy }
function prevod16(x:longint):string;
var y:string;
zb:byte;
begin
y:='H';
repeat
zb:=x mod 16;
if (zb>=10) and (zb<=15) then y:=chr(zb+55)+y
else y:=chr(zb+48)+y;
x:=x div 16;
until x=0;
prevod16:=y;
end;
var a:longint;
s:string;
begin
write('Zadejte cislo v desitkove soustave: ');
readln(a);
s:=prevod16(a);
writeln(a,'D=',s);
readln;
end.
program ke stažení