Conversion hexa to byte ?

Conversion hexa to byte ? - C - Programmation

Marsh Posté le 01-03-2005 à 15:30:58    

Bonjour j'ai une chaine de caratère en hexa:
aa fa 7f 56 fb 2f
et j'aimerais la convertire en byte je fais comment ?
 
Existe t'il une fonction qui fait cela facilement en C?
 


---------------
APB
Reply

Marsh Posté le 01-03-2005 à 15:30:58   

Reply

Marsh Posté le 01-03-2005 à 15:33:52    

strtoul ou sscanf

Reply

Marsh Posté le 01-03-2005 à 15:35:55    

Merci :) On dirait que c est ce que je cherche ;)


---------------
APB
Reply

Marsh Posté le 01-03-2005 à 15:37:47    

le_pacifa a écrit :

Bonjour j'ai une chaine de caratère en hexa:
aa fa 7f 56 fb 2f
et j'aimerais la convertire en byte je fais comment ?


En byte ? Ca n'a aucun sens. Tu veux sans doute dire 'en valeur numérique' ou 'en entier'...
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 01-03-2005 à 16:03:24    

Emmanuel Delahaye a écrit :

En byte ? Ca n'a aucun sens. Tu veux sans doute dire 'en valeur numérique' ou 'en entier'...


[:aloy]
 


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 01-03-2005 à 16:07:50    

En fait c est simple j'ai une chaine
AA BB CC 11 DD EE  
 
et chaque groupe de caractère doit aller dans un byte (char)
 
Exemple
 
string de départ:
AA BB CC 11 DD EE
 
devient
 
170 187 etc
 
 
 


---------------
APB
Reply

Marsh Posté le 01-03-2005 à 16:21:23    

le_pacifa a écrit :

En fait c est simple j'ai une chaine
AA BB CC 11 DD EE  
 
et chaque groupe de caractère doit aller dans un byte (char)
 
Exemple
 
string de départ:
AA BB CC 11 DD EE
 
devient
 
170 187 etc


 
Déjà, un truc de base: Que tu affiches ton nombre en hexa ou en décimal ne change rien à sa valeur.
Exemple:
char cA=0xaa;
char cB=170;
if (cA == cB) // Vrai
 
Ensuite, la fonction strtol("aa", NULL, 16) te renvoie le nombre 170 (je me souviens plus s'il faut lui passer "aa" ou "0xaa" mais j'espère que tu vois déjà l'idée)
 
Enfin la fonction sprintf(dest, "%d", 170) t'écris la chaîne "170" dans la variable "dest" (espérons que "dest" soit un tableau de char suffisemment long)
 
Donc une boucle qui analyse la chaîne de départ en utilisant l'espace pour séparer, qui converti la partie de chaîne en cours de traitement en nombre entier puis qui réécrit ce nombre dans une seconde chaîne et basta...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 01-03-2005 à 16:38:16    

Oki mais y a pas de fonction qui le fait déja ;)
 
 
ps: c est juste pour un truc de crypto mais jsuis une burne en C lol .


---------------
APB
Reply

Marsh Posté le 01-03-2005 à 21:11:28    

le_pacifa a écrit :

Oki mais y a pas de fonction qui le fait déja ;)


Vivi, ya la fonction "char *moulcafe(char *)" qui te fait tout ça et qui, en plus, te moud le café...  :D  
 

le_pacifa a écrit :

ps: c est juste pour un truc de crypto mais jsuis une burne en C lol .


Mais non, tout s'apprend, surtout si tu aimes le C...


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed