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

Langage C++ Discussion :

Convertir un unsigned long vers tableau de unsigned char


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2013
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 190
    Par défaut Convertir un unsigned long vers tableau de unsigned char
    Bonjour,

    je suis un peu coincé sur une histoire de conversion, j'ai un DWORD qui est égal à 1234 et j'aimerai mettre cela dans un tableau de unsigned char, voilà ce que j'ai pour le moment:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    DWORD dw_user_id = 1234; 		
    BYTE aby_user_id[4];
    aby_user_id[0] =  (dw_user_id >> 24) & 0xff;
    aby_user_id[1] =  (dw_user_id >> 16) & 0xff;
    aby_user_id[2] =  (dw_user_id >> 8) & 0xff;
    aby_user_id[3] =  dw_user_id & 0xFF;
    mais j'ai pas le résultat escompté Nom : Capture.PNG
Affichages : 463
Taille : 1,4 Ko

    Avez-vous une solution ? merci !

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 150
    Billets dans le blog
    4
    Par défaut
    Pourquoi penses-tu que c'est faux ?
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Et tu voudrais quel résultat. Et pourquoi?
    1234 = 0x000004D2
    Donc, ton tableau devrait ressembler à {0, 0, 0x04, 0xD2}. Et 0xD2 vaut bien 210.

  4. #4
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2013
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 190
    Par défaut
    En fait je voudrais que mon tableau ressorte comme ceci :

    aby_user_id[0] = 1;
    aby_user_id[1] = 2;
    aby_user_id[2] = 3;
    aby_user_id[3] = 4;

    Je pense passer par un union en fait ! Je vais voir ce que ça donne !

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 150
    Billets dans le blog
    4
    Par défaut
    Ca ce serait juste de la conversion de nombre en chaîne. Via ostringstream par exemple, ou à l'ancienne sprintf.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    1234 est une représentation du nombre. En base 10.
    Dans le fonctionnement du programme, le nombre est représenté en binaire.
    Les opérateurs comme >> agissent sur cette représentation.

    La forme décimale n'est perceptible que via l'affichage.

    Ce dont tu as besoin, c'est l'arithmétique fondamentale: la division euclidienne, c'est à dire la division entière et surtout le reste de cette division: l'opérateur modulo (%).

  7. #7
    Membre confirmé
    Homme Profil pro
    Analyse système
    Inscrit en
    Mai 2013
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 190
    Par défaut
    Bien, tu as un exemple ? Je comprends en fait, il me faut l'affichage en décimal dans mon tableau mais je vois pas comment faire.

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

Discussions similaires

  1. Convertir un unsigned int vers un long double
    Par dafpp dans le forum Débuter
    Réponses: 3
    Dernier message: 28/01/2012, 19h37
  2. Réponses: 11
    Dernier message: 18/03/2011, 16h10
  3. convertir a unsigned byte[] vers un objet
    Par ricky78 dans le forum Entrée/Sortie
    Réponses: 8
    Dernier message: 29/11/2010, 15h09
  4. convertir une valeur stocké sur 4 unsigned long en décimal
    Par juanito003 dans le forum Général Python
    Réponses: 3
    Dernier message: 06/12/2007, 20h57
  5. unsigned long vers time_t
    Par turbo_chess dans le forum C
    Réponses: 2
    Dernier message: 28/09/2007, 14h45

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