Guest User

Ascii to hex

a guest
May 8th, 2012
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.95 KB | None | 0 0
  1. program ascii_to_hex;
  2. var teksts,hexteksts: string;  //Teksts- input teksts, hexteksts- output teksts
  3. mainigais1,mainigais2: integer; //nosaka vietu stringā, un for cikla mainīgais
  4. decvertiba: integer; //nosaka char elementa decimālo vērtību
  5. karta: integer;
  6.  {heksidecimālā skaitļa kārtības noteicējs, piem 1.2.3..A,B, u.t.t.}
  7. hexvert: array[0..15] of char; // Heksidecimālās vērtības
  8. simbkarta: integer; //String simbola kartas skaitlis
  9. paligmain: char; //saglabā simbola vērtību lai to varētu dot tālāk.
  10.  
  11. begin
  12.  
  13. write('ievadi tekstu, ko varetu parveidot hex- ');
  14. readln(teksts);
  15.  
  16. karta:=0;                       //ieliek hex vērtības masīvā
  17. simbkarta:=1;
  18.   for mainigais2:= 48 to 70 do
  19.         begin
  20.         if (mainigais2<58) or (mainigais2>64) then      //izņem nederīgos elementus
  21.         begin
  22.                 hexvert[karta]:=chr(mainigais2);
  23.                 inc(karta);
  24.         end else continue;
  25.         end;
  26.  
  27. for mainigais1:= 1 to length(teksts) do
  28. {pārveido elementus uz hex. hex kods vel jaapgriež.
  29. heksidecimālo kodu iegūst dalot skaitli ar 16 un tā atlikums
  30. ir tā vērtība. piemēram 108 dec  izvada 6C hex.
  31. 108  mod 16=12. 12 elements masīvā hexvert ir C.
  32. tad 108 div 16 kura vertiba ir 6.
  33. Ciklu atkārto. 6 mod 16= 6. 6 masīva hexvert ir 6. visas
  34. vertibas ir apgrieztas hextekstā pagaidām. Programmas beigās tās atgriež
  35. pareizajā veidā}
  36. begin
  37.   decvertiba:=ord(teksts[mainigais1]);
  38.   repeat
  39.   karta:=decvertiba mod 16;
  40.         hexteksts[simbkarta]:=hexvert[karta];
  41.         decvertiba:=decvertiba div 16;
  42.         inc(simbkarta);
  43.   until decvertiba=0;
  44.   paligmain:=hexteksts[simbkarta-1];
  45.   hexteksts[simbkarta-1]:=hexteksts[simbkarta-2];
  46.   hexteksts[simbkarta-2]:=paligmain;
  47.  
  48.  
  49.   if(mainigais1<>length(teksts)) then
  50.   begin
  51.         hexteksts[simbkarta]:=':';
  52.         inc(simbkarta);
  53.   end else
  54. end;
  55. for karta:= 1 to simbkarta do
  56. begin
  57. write(hexteksts[karta]);
  58. end;
  59. readln;
  60. end.
Advertisement
Add Comment
Please, Sign In to add comment