salut a tous je doit effectuer une convertion binaire je dispose d'un tableau unsigned char et je pense que sa serai plus facile de le convertir ce tableau en AnsiString pour effectuer cette convertion. Si quelqu'un aurai une idée merci
salut a tous je doit effectuer une convertion binaire je dispose d'un tableau unsigned char et je pense que sa serai plus facile de le convertir ce tableau en AnsiString pour effectuer cette convertion. Si quelqu'un aurai une idée merci
Salut !
En procédant ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 //Déclaration en global char Tab[]="1234";On peut faire aussi (ce qui revient à faire la même chose):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 AnsiString N = Tab; int n = N.ToInt();
REM : il ne faudra jamais altérer le dernier caractère Nul car il fixe la longueur de la chaîne dans ce tableau !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 #define Nul 0 char Tab[5] = {'1','2','3','4', Nul};
On a bien sûr la possibilité de placer ce caractère Nul n'importe où dans ce tableau.
A plus !
Est ce que ton tableau ne contient que des caractères imprimables? Ou alors il peut y avoir n'importe quelles valeur entre 0 et 255?je dispose d'un tableau unsigned char
mon tableau contient des valeurs binaires ou decimales ou hexadicimales
Donc il n'y a pas d'intérêt à le convertir en AnsiString, tu aura des problèmes avec les caractères spéciaux qui pourront être mal interprétés.
Poste un bout de code pour voir se que peut contenir ton tableau.
Salut !
Ce serait bien d'en préciser le contenu !
Partant de là on saurait quelle solution proposer (hexadécimal, ascii, octal, digit, binaire, ternaire, dromadaire, petit pois, lapin blanc ...) !
On a également ceci en magasin :
Donc à l'usage :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 union U { int I; Byte T[4]; }; U u;
A plus !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 u.T[0] = 0x10; u.T[2] = 0x20; u.T[3] = 0x30; u.T[4] = 0x40; Label1->Caption = u.I;
Dans mon tableau si c'est du:
- binaire 110001..
- decimal 1234567890
- hexa 0123456789ABCDEF
voila ce que j'ai dans mon tableau unsigned char
Dans un programme que j'ai deja fait je m'etait mi deux fonctions qui lise dans un Edit sauf que le souci maintenant mais valeur sont dans un tableau unsigned char et c'est valeur son mise dans une StringGrid
voici le code des deux foncions d'un programme qui me permeter de passe de hexa en binaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 AnsiString Conv_hexa_bin( char val_hexa ) { //Declaration de variable AnsiString val_binaire; if(val_hexa=='0') val_binaire="0000"; if(val_hexa=='1') val_binaire="0001"; if(val_hexa=='2') val_binaire="0010"; if(val_hexa=='3') val_binaire="0011"; if(val_hexa=='4') val_binaire="0100"; if(val_hexa=='5') val_binaire="0101"; if(val_hexa=='6') val_binaire="0110"; if(val_hexa=='7') val_binaire="0111"; if(val_hexa=='8') val_binaire="1000"; if(val_hexa=='9') val_binaire="1001"; if(val_hexa=='A') val_binaire="1010"; if(val_hexa=='B') val_binaire="1011"; if(val_hexa=='C') val_binaire="1100"; if(val_hexa=='D') val_binaire="1101"; if(val_hexa=='E') val_binaire="1110"; if(val_hexa=='F') val_binaire="1111"; //Declaration de variable return (val_binaire); } AnsiString Conversion( AnsiString val_hexa ) { //On met ton en majuscule val_hexa = UpperCase( val_hexa ) ; //Declaration de variable AnsiString result = "" ; for( int i=1; i<= val_hexa.Length(); i++ ) result = result + Conv_hexa_bin(val_hexa[i]); //Retourne la result return( result ) ; }
Partager