Navigace: Hlavní stránka -> PASCAL -> 07 Podprogramy -> 07.06 Funkce - převod čísla z desítkové do hexadecimální soustavy

MENU

07.06 Funkce - převod čísla z desítkové do hexadecimální soustavy

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í