bonjour,
je souhaite faire un programme qui converti un code hexa en string, c'est à dire j'ai le code 65 et je veux afficher sa valeur en char c'est à dire "e". Je voudrai que ca fonctionne pour toute la table ascii
si quelqu'un peu m'aider
merci.
bonjour,
je souhaite faire un programme qui converti un code hexa en string, c'est à dire j'ai le code 65 et je veux afficher sa valeur en char c'est à dire "e". Je voudrai que ca fonctionne pour toute la table ascii
si quelqu'un peu m'aider
merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #include <stdio.h> int main() { putchar('A'); putchar(65); putchar(0x41); putchar('\x41'); return 0; }
Tu peux isoler les caractères deux par deux puis utiliser la fonction strtoul() pour convertir, et mettre chaque résultat dans un char...
Edit: En supposant que tu les aies sous cette forme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part const char * strHex = "65";
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.
je vois pas le principe de vos convertion? je vois pas comment convertir un hexa en char.
ce que je veu faire c'est convertire la valeur hexa de (exemple) 74 en char c'est à dire t.
C'est parce que j'ai mal vu le code de Melem et qu'il s'est gouré de valeur.
Tu devrais mieux comprendre avec ce code:
Comme tu peux le voir, la valeur 0x65 est déjà équivalente au caractère 'e'.
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 #include <stdio.h> int main(void) { putchar('e'); putchar(101); putchar(0x65); putchar('\x65'); putchar('\145'); putchar('t'); putchar(116); putchar(0x74); putchar('\x74'); putchar('\164'); fflush(stdout); return 0; }
Quant à mon premier post, il indiquait comment convertir si tu avais ta valeur sous forme d'une chaîne de caractères en hexa (genre "65", avec les guillemets).
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.
C'est plutôt 0145 ou '\145' si on veut s'exprimer en octal. Même remarque pour '\x164'.Envoyé par Médinoc
Mais puisqu'on te dit qu'il n'y a pas de conversion à faire puisque 't' est déjà représenté à l'intérieur de l'ordinateur par 01110100. Tu peux l'interpréter ensuite comme tu veux. Comme un entier, un caractère, ... En langage C on peut exprimer une valeur entière de plusieurs façons, ainsi : 116 (écriture en décimal), 0x74 (écriture en hexadécimal), 0164 (écriture en octal) valent la même chose : 01110100 que tu peux encore écrire (Si le jeu de caractères est basé sur ASCII) 't', '\x74' ou '\164'. Par contre, si tu veux convertir une chaîne, "1000" par exemple en entier, il y a la les fonctions atoi, atol, strtol, strtoul, ... qui ne sont pas d'ailleurs difficiles à implémenter.Envoyé par mmarcoboss
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