IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

[MFC] convertir ascii->hexa


Sujet :

MFC

  1. #1
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut [MFC] convertir ascii->hexa
    bonjour à tous,

    il me semblait qu'il y avait eu un post récent sur ce sujet, mais je ne parviens pas à le retrouver.

    Comment faire, donc, pour convertir un CString (contenant des carractères ascii) en une autre CString contenant l'équivalent en hexadécimal?

    j'ai regardé la fonction hex(), mais je ne comprends pas comment elle fonctionne

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055

  3. #3
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    pour ce lien, mais...
    erf, cette fonction ne marche qu'avec des nombres, et j'ai besoin de convertir des lettres et tous les carractères ascii. Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CString str1 = "<A1>blabla</A1>";
    CString str2 = convertChar2Hexa(str1);

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    il faut que tu parcours ta chaine caractère par caractère, et que tu convertisses son code ascii (qui sera un nombre) en hexa.
    le code ascii tu l'as par ex en castant la lettre en char

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char c='A';
    int n=(int)c; // n vaut 65

  5. #5
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    ok, ça roule, merci.

    Et pour faire l'inverse?

    (désolé, mais je ne comprends pas encore très bien comment fonctionnent les codes hexadecimal/ascii et leur traduction en char*)

  6. #6
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    en fait, je n'arrive pas à traduire le code ascii en carractère. Par exemple, je récupère la valeur 65, mais je n'arrive pas à le transformer en 'A'. Comment faire?

  7. #7
    tut
    tut est déconnecté
    Membre éclairé
    Avatar de tut
    Inscrit en
    Juillet 2002
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 373
    Par défaut
    un caractère ASCII EST un nombre, après c'est juste une question d'interprétation : la fameuse table ASCII dit que le nombre 0x41 représente le caractère 'A', etc...
    donc il n'y a pas conversion de valeur, mais différentes interprétations d'une même valeur.

  8. #8
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    comme le dit tut, c'est juste une question de représentation

    si tu as une chaine "ABCD", elle va etre stockée en mémoire grace à sa représentation en ascii à savoir :
    en décimal : 65 66 67 68
    en hexa : 41 42 43 44

    toi tu veux passer de "ABCD" à "41424344" ? c'est bien ca ?

  9. #9
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    oui. Dans ce sens, c'est bon c'est fait. Mais je voudrais revenir après: 41 42 43->ABC. Mais visiblement, cela ne semble pas trop faisable non?

  10. #10
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    c'est le meme principe,
    tu lis 41, tu le convertis en décimal => 65
    et ensuite tu as la lettre qu'il faut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char c=65; //  c vaut 'A'

  11. #11
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    oui, mais une fois que j'ai 65, existe-t-il une fonction qui fait la conversion en A?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int i=65; 
    char c=laFonctionQuiVaMeSauverLaVie(i); 
    print("%s",c); // ça m'affiche 'A'

  12. #12
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    tu n'as pas compris ce que je t'ai dit, c'est une question de représentation

    si tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int i=65;
    char c = i;
    printf("%s",c);
    ca va t'afficher A, et si tu fais ca va t'afficher 65

  13. #13
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    ok ça marche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. convertir des caractère Ascii en hexa
    Par xtimas dans le forum MATLAB
    Réponses: 3
    Dernier message: 23/04/2010, 13h07
  2. Convertir DECIMAL ou HEXA en ASCII
    Par lefebvre.pie dans le forum C++Builder
    Réponses: 13
    Dernier message: 22/02/2007, 16h03
  3. convertir un fichier .bin (ascii) en hexa
    Par LionNar dans le forum Delphi
    Réponses: 11
    Dernier message: 25/01/2007, 13h47
  4. [MFC] convertir LPCTSTR en LPCWSTR ?
    Par MrMaze dans le forum MFC
    Réponses: 4
    Dernier message: 18/04/2005, 18h15
  5. conversion : (Ascii en hexa) => nombre
    Par tut dans le forum C++
    Réponses: 3
    Dernier message: 21/04/2004, 14h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo