|
Bas de page | |
---|---|
Auteur | Sujet : [C] Conversion Hexa vers ASCII |
Publicité | Posté le 11-01-2009 à 19:13:24 |
Taz bisounours-codeur | y a pas de correspondance. Un char c'est un entier. L'affichage n'est qu'une question de formatage, du printf %d ou bien %c |
Taz bisounours-codeur | oui |
matafan | Un nombre est un nombre, et pour le C il n'y pas de "nombre hexa". Il y a un nombre, que tu peux afficher en décimal, en octal, en hexadécimal... |
Mike0un | correction dans le dernier printf j'ai mis %c au lieu de %x.
|
Taz bisounours-codeur | nan mais là te manques les bases du scanf/printf
|
Publicité | Posté le 13-01-2009 à 17:14:42 |
dwogsi Défaillance cérébrale... | Ca veut dire quoi "ça ne fonctionne pas"? C'est trop vague.
--------------- -- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/ |
dwogsi Défaillance cérébrale... | Vais peut-être dire des conneries, mais ça me fera l'occasion de me faire corriger Quand tu saisie des caractères hexadécimaux sur l'entrée standard, ça ne correspond à rien d'autre qu'une suite char qui eux-même correspondent à différents nombres qui n'ont à priori pas grand chose à voir avec le nombre héxadécimal que l'on voudrait obtenir. Il est donc essentiel de convertir cette chaîne de caractère en valeur numérique. C'est ce que permet strtol ! Exemple : Si tu saisie FF, au mieux tu aura deux fois le code de F alors que tu voudrais 255. Message édité par dwogsi le 13-01-2009 à 17:45:16 --------------- -- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/ |
Mike0un | Ok, si je comprends bien, habituellement si je saisie un nombre hexa, il n'a aucune correspondance. Tandis que strtol permet de faire une correspondance. C'est bien ça ? |
dwogsi Défaillance cérébrale... | C'est bien ça.
--------------- -- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/ |
dwogsi Défaillance cérébrale... | Un exemple de conversion :
Message édité par dwogsi le 13-01-2009 à 18:30:41 --------------- -- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/ |
Mike0un | Je pense avoir mal compris quelque chose, un nombre en base 16 n'est pas la même chose qu'un nombre hexadécimal ? |
dwogsi Défaillance cérébrale... | Les deux termes désignent bien la même chose, même si les puristes diront le contraire. Message édité par Elmoricq le 13-01-2009 à 19:24:08 --------------- -- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/ |
dwogsi Défaillance cérébrale... | Faudrait peut être allez voir les bases du C tu crois pas? T'occupe pas du second paramètre de strtol. Il lui faut donc la chaîne saisie par l'utilisateur, ici je me suis limité à une chaîne de 2 caractères (soit 3 avec le caractère de fin de chaîne) ce qui correspond à un octet en notation hexadécimal, soit un char. Il lui faut également la base pour savoir quelle conversion effectuer. Ici 16, ce qui correspond à la notation hexadécimale. A partir de ces deux paramètre, elle renvoie la valeur traduite sous forme numérique, contenue dans une variable du bon type. Ici de type long. Que l'on récupère dans res. Pour ensuite obtenir le caractère c'est simple : printf("%c",res); Message édité par dwogsi le 13-01-2009 à 18:41:22 --------------- -- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/ |
Mike0un | Merci beaucoup de tes explications, tu m'as beaucoup aidé.
Message édité par Mike0un le 13-01-2009 à 18:43:12 |
dwogsi Défaillance cérébrale... | Commence par consulter une table ASCII (google est ton ami).
Edit : Ah bah si tu change tes messages.... Message édité par dwogsi le 13-01-2009 à 18:45:18 --------------- -- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/ |
Mike0un | D'accord, j'essaye de faire quelque chose qui convertit plusieurs caractères et je t'en fait part.
|
Mike0un | J'ai de nouveau un problème. Voici mon programme :
|
Taz bisounours-codeur | fgets lis une ligne. Pour ce que tu veux faire, tu dois:
|
Publicité | Posté le |
Sujets relatifs | |
---|---|
B. Stroustrup - Programming: Principles and Practice Using C++ | [C / OpenGL] Comment faire un deplacement libre (si possible: freefly |
Pourquoi ne pas pointer vers un élément courant dans une liste chainée | [C] Savoir si un type de fichier est présent dans un répertoir |
[C]programme affichant la suite d'operation pour trier une liste. | Importation des données depuis SQL vers EXCEL |
[C] boucle de lecture streaming audio | [Résolu][C] probleme avec une macro |
[HELP] Communiquer en C/C++ avec des API Siemens S5 | Erreur dans un programme basique en C |
Plus de sujets relatifs à : [C] Conversion Hexa vers ASCII |