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

C++ Discussion :

Comment convertir un caractère en valeur héxadécimale ?


Sujet :

C++

  1. #1
    Membre habitué

    Inscrit en
    Février 2005
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 356
    Points : 175
    Points
    175
    Par défaut Comment convertir un caractère en valeur héxadécimale ?
    Slt tout le monde !

    Voilà j'aimeré convertir un caractere (de type char) en valeur hexadécimale.

    Je m'explique un peu +, par exemple, je reçoit le caractere "(", j'aimerais avoir la valeur héxa de la parenthese, c'est à dire 28.

    Comment je pourré procéder ?

    Merci de vos réponses

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <sstream>
     
    char c = '(';
     
    std::ostringstream oss;
    oss << std::hex << static_cast<int>(c);
    std::string Hex = oss.str();

  3. #3
    Membre averti
    Avatar de rolkA
    Inscrit en
    Juillet 2003
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 324
    Points : 369
    Points
    369
    Par défaut
    Bonjour.
    Tu veux dire que tu veux l'afficher ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include <iostream>
    using namespace std;
     
    int main()
    {
        char c = ')';
        cout << "code ASCII en hexa: " << hex << int(c) << endl;
        getchar();
        return 0;
    }
    Sinon je vois pas ce que tu veux...
    <edit> je tape pas vite ^^ </edit>

  4. #4
    Membre habitué

    Inscrit en
    Février 2005
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 356
    Points : 175
    Points
    175
    Par défaut
    Lorsque je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #include <sstream> 
     
    char c = '('; 
     
    std::ostringstream oss; 
    oss << std::hex << static_cast<int>(c); 
    std::string Hex = oss.str();
    et que je rajoute ceci pour me permettre de l'avoir dans une zone d'édition, j'obtient un msg d'erreur
    Le msg d'erreur est le suivant :
    [C++ Erreur] Superviseur.cpp(68): E2034 Impossible de convertir '_STL::string' en 'AnsiString'

    Comment faire pour que ça marche ?

    Merci bcp

    Ps : j'utilise builder c++ 6

  5. #5
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Les champs de tes controles sont des AnsiString (classe des chaînes de caractères de BCB), alors que le code ci-dessu manipule des string (classe de chaînes standard).

    Essaye ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Edit->Text=Hex.c_str();

  6. #6
    Membre averti
    Avatar de rolkA
    Inscrit en
    Juillet 2003
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 324
    Points : 369
    Points
    369
    Par défaut
    Si tu utilises les AnsiString et donc la bibliothèque de composants de BCB, il te suffit de faire çà:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char c = ... // tu le récupère comme tu veux
    Edit->Text = IntToHex(c, 2);
    A+

  7. #7
    Membre habitué

    Inscrit en
    Février 2005
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 356
    Points : 175
    Points
    175
    Par défaut
    merci, ça marche niquel cette fonction.

    @+tout le monde

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/07/2010, 17h50
  2. Réponses: 4
    Dernier message: 22/12/2006, 16h10
  3. Réponses: 3
    Dernier message: 28/09/2006, 18h18
  4. Réponses: 1
    Dernier message: 08/09/2006, 17h43

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