Bonjour,
Je veux convertir une chaine en hexa décimal,comment je peux faire?
Par exemple :
ch="0013A200"
je veux récupérer les données 2 par 2 càd j'obtiens 00 13 A2 00 qui seront des nombres hexa.
Merci.
Bonjour,
Je veux convertir une chaine en hexa décimal,comment je peux faire?
Par exemple :
ch="0013A200"
je veux récupérer les données 2 par 2 càd j'obtiens 00 13 A2 00 qui seront des nombres hexa.
Merci.
Bonjour,
Il me semble que snprintf fait ça ?
Merci pour l'information, mais comment?
j'ai pas trouvé la bonne forme de sprintf .
Si tu fais char const* ch= "0013A200";, Ta chaîne est déjà en hexadécimal. Explique mieux ce que tu veux.
Cherches-tu à parser la chaîne pour obtenir un tableau de int (ou de unsigned char) à partir de celle-ci?
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Ma chaine n'est pas constante, je veux la récupérer d'un port série.
Par exemlpe :
je recoit la chaine suivante dans la variableJe déclare une variable
Code : Sélectionner tout - Visualiser dans une fenêtre à part char chaine_recue[50];j'obtient comme résultat var=01 .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 char var[2]; sprintf(var,"%c%c",chaine_recue[1],chaine_recue[2]);
Je veux que 01 sera considérée comme un nombre hexa (comme 0x01).
J’espère que j'ai bien expliqué le problème .Aidez moi svp.
Dans ce cas:
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 char var[3]; /*Deux digits + caractère nul de fin de chaîne.*/ sprintf(var,"%c%c", chaine_recue[1], chaine_recue[2]); long nb = strtol(var, NULL, 16); /*on utilise strtol pour parser en base 16*/
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
la méthode strtol marche seulement avec les chiffres de 0 à 9.
Mais si j'ai var =A2 elle m'affiche 162 et non la valeur A2 ,ou si j'ai var=13 elle n'affiche pas 13 elle m'affiche 19.
Comment je peux modifier? Merci d'avance
Je ne vois pas où est le problème, les résultats que tu me donnes sont conformes à tes spécifications:
- 0xA2 (hexadécimal) = 162 (décimal)
- 0x13 (hexédécimal) = 19 (décimal)
Tu as ton nombre, après c'est juste une question de comment tu l'affiches.
Ce qu'il faut garder à l'esprit, c'est que le nombre lui-même n'est jamais décimal, hexadécimal ou binaire. C'est sa représentation (donc, sa conversion en chaîne de caractères) qui l'est.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager