1. #1
    Membre régulier
    Homme Profil pro
    Analyse système
    Inscrit en
    mai 2013
    Messages
    185
    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 : 185
    Points : 107
    Points
    107

    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 : 60
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
    4 649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : juin 2010
    Messages : 4 649
    Points : 18 923
    Points
    18 923

    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 sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    4 991
    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 : 4 991
    Points : 16 656
    Points
    16 656

    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.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  4. #4
    Membre régulier
    Homme Profil pro
    Analyse système
    Inscrit en
    mai 2013
    Messages
    185
    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 : 185
    Points : 107
    Points
    107

    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
    4 649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : juin 2010
    Messages : 4 649
    Points : 18 923
    Points
    18 923

    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 sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    juin 2007
    Messages
    4 991
    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 : 4 991
    Points : 16 656
    Points
    16 656

    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 (%).
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  7. #7
    Membre régulier
    Homme Profil pro
    Analyse système
    Inscrit en
    mai 2013
    Messages
    185
    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 : 185
    Points : 107
    Points
    107

    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.

  8. #8
    Rédacteur/Modérateur

    Homme Profil pro
    Network game programmer
    Inscrit en
    juin 2010
    Messages
    4 649
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : juin 2010
    Messages : 4 649
    Points : 18 923
    Points
    18 923
    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.

+ 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, 20h37
  2. Réponses: 11
    Dernier message: 18/03/2011, 17h10
  3. convertir a unsigned byte[] vers un objet
    Par ricky78 dans le forum IO
    Réponses: 8
    Dernier message: 29/11/2010, 16h09
  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, 21h57
  5. unsigned long vers time_t
    Par turbo_chess dans le forum C
    Réponses: 2
    Dernier message: 28/09/2007, 15h45

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