1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| function HexaToBinaire(ChaineHexa: string):string;
Var
i,j,Endj: integer;
Return: string;
CorrespondanceBinaire : Array[0..15] of string;
ListePossibilitesHexa : Array[0..15] of char;
Begin //HexaToBinaire
(* on initialise Return à '', car on va concaténer
*les caractères trouvés au fur et à mesure
*)
Return := '';
ListePossibilitesHexa[0] := '0';
ListePossibilitesHexa[1] := '1';
ListePossibilitesHexa[2] := '2';
ListePossibilitesHexa[3] := '3';
ListePossibilitesHexa[4] := '4';
ListePossibilitesHexa[5] := '5';
ListePossibilitesHexa[6] := '6';
ListePossibilitesHexa[7] := '7';
ListePossibilitesHexa[8] := '8';
ListePossibilitesHexa[9] := '9';
ListePossibilitesHexa[10] := 'A';
ListePossibilitesHexa[11] := 'B';
ListePossibilitesHexa[12] := 'C';
ListePossibilitesHexa[13] := 'D';
ListePossibilitesHexa[14] := 'E';
ListePossibilitesHexa[15] := 'F';
CorrespondanceBinaire[0] := '0000';
CorrespondanceBinaire[1] := '0001';
CorrespondanceBinaire[2] := '0010';
CorrespondanceBinaire[3] := '0011';
CorrespondanceBinaire[4] := '0100';
CorrespondanceBinaire[5] := '0101';
CorrespondanceBinaire[6] := '0110';
CorrespondanceBinaire[7] := '0111';
CorrespondanceBinaire[8] := '1000';
CorrespondanceBinaire[9] := '1001';
CorrespondanceBinaire[10] := '1010';
CorrespondanceBinaire[11] := '1011';
CorrespondanceBinaire[12] := '1100';
CorrespondanceBinaire[13] := '1101';
CorrespondanceBinaire[14] := '1110';
CorrespondanceBinaire[15] := '1111';
(*
* Pour chaque caractère hexadécimal on vérifie sa correspondance avec le tableau
* si elle est trouvée on affiche l'équivalent en binaire
* Endj sert à finir plus rapidement la boucle pour éviter des itérations inutiles si correpondance trouvée
*)
for i:= 1 to 4 do
Begin
Endj := 15;
for j:= 0 to Endj do
Begin
if ChaineHexa[i] = ListePossibilitesHexa[j] then
Begin
Return := Return+CorrespondanceBinaire[j];
Endj := 1;
End;
End;
End;
HexaToBinaire := Return;
End; //HexaToBinaire |
Partager