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.
Version imprimable
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?
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 variableCode:char chaine_recue[50];
j'obtient comme résultat var=01 .Code:
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:
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*/
Merci beaucoup:D
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.