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 :

Probléme pour convertir decimal en hexa


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut Probléme pour convertir decimal en hexa
    Salut,

    alors voila je rentre une valeur en decimale et je voudrai la recupérer en hexa alors j'ai d'abord fait un petit programme test mais qui ne marche pas et la je voit pas pourquoi

    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
    20
    21
    22
    23
    24
     
    #include <stdio.h>
    #include <conio.h>
    #include <iostream>
    #include <iomanip>
    #include <sstream>
     
    void main()
    {
     
    	float Write;
     
    	std::ostringstream str;
    	std::cout<<"\nSaisir la valeur: ";
    	std::cin>>Write;
    	Write=Write*10;
     
    	str<<std::hex<<Write;
    	std::cout<<"\nstr="<<str.str();
     
    	getch();
     
     
    }
    Si je rentre 32.1 par exemple il m'affiche str=321

    A terme je voudrai que cette valeur en hexa sois stocker sur 2 octet pour les envoyer dans une trame, c'est possible avec un ostringstream?

  2. #2
    Membre émérite
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Par défaut
    Oui mais c'est un float que tu prend en entrée, alors c'est peut-être normal que ça marche pas.

  3. #3
    Membre confirmé Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut
    a oui ok, je vient d'essayer avec un int il me convertie bien mais je veux rentrer des chiffres à virgule...

    Edit: c'est bon j'y arrive en faisant

    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
    void main()
    {
     
    	float Write;
            int write;
     
    	std::ostringstream str;
    	std::cout<<"\nSaisir la valeur: ";
    	std::cin>>Write;
    	write=Write*10;
     
    	str<<std::hex<<write;
    	std::cout<<"\nstr="<<str.str();
     
    	getch();
     
     
    }
    donc si je rentre 32.1 j'obtient bien 140
    mais maintenant je voudrai stocker 01 dans Tab[0] et 40 dans Tab[1], c'est possible?

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    On ne voit pas Tab et on ne sait pas d'où viennent ces valeurs.
    Code?
    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.

  5. #5
    Membre confirmé Avatar de vtk37
    Inscrit en
    Avril 2009
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Avril 2009
    Messages : 159
    Par défaut
    pour l'instant Tab n'existe pas

    Je m'explique plus clairement:

    Dans ma console on me demande de saisir une valeur,
    si je rentre 32.1
    cela m'affiche "str=140" donc la valeur hexa de 321

    maintenant j'ai besoin de cette valeur hexa pour quelle fasse partie d'un trame
    qui ressemblera à sa: 06 28 02 01 40
    les 2 derniers octet correspondant à la valeur hexa de la consigne rentrée en decimale

    donc je voudrai savoir comment récupérer ce 140 en 2 partie 01 et 40 que je stockerai dans un tableau par exemple pour faire sa:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    trame_a_envoyer[0]=0x06;
    trame_a_envoyer[1]=0x28;
    trame_a_envoyer[2]=0x02;
    trame_a_envoyer[3]=Tab[0]; // avec Tab[0]=01
    trame_a_envoyer[4]=Tab[1]; // avec Tab[1]=40
    trame_a_envoyer[5]='\0'
    voila, je sais pas comment manipuler ostringstream str pour recuperer ce que je souhaite ...

  6. #6
    Membre très actif
    Profil pro
    professeur des universités à la retraite
    Inscrit en
    Août 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : professeur des universités à la retraite

    Informations forums :
    Inscription : Août 2008
    Messages : 364
    Par défaut
    Je suggèrerais que tu fournisses les déclarations de trame_a_envoyer et de Tab. On y verrait un peu plus clair.

Discussions similaires

  1. [SQL2K] Problème pour convertir un timestamp en datetime !!
    Par MeHo_ dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 04/03/2008, 11h02
  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. Réponses: 11
    Dernier message: 19/02/2007, 00h20
  4. Problème de conversion decimal vers Hexa
    Par Elbarto dans le forum C++
    Réponses: 1
    Dernier message: 06/02/2006, 19h37
  5. [C#] Problème pour convertir .Color en .Brush
    Par pymouse dans le forum Windows Forms
    Réponses: 2
    Dernier message: 19/05/2005, 15h19

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