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 :

Affectation d'une variable


Sujet :

C

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 138
    Points : 124
    Points
    124
    Par défaut Affectation d'une variable
    Bonjour,

    J'ai un souci au niveau d'une affectation :
    Je souhaite affécté une valeur dans une variable sous forme binaire pour simplifier la compréhension de mon programme.

    Par exemple :
    pour mieux se rendre compte de la valeur mise dans var
    En héxa :
    Je ne trouve pas comment faire pour la correspondance en binaire. J'ai essayé ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int var = 0b00010110;
    Merci

  2. #2
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    On peut pas :p

  3. #3
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Tu trouves vraiment que c'est plus clair de l'ecrire en binaire

    Sinon il faut peut etre voir les opérateurs de bit.(&,|,....)

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 138
    Points : 124
    Points
    124
    Par défaut
    C'est étonnant que l'on ne puisse pas. Je comprends l'intérêt de pouvoir le faire en héxa mais je pensais qu'on pouvais aussi le faire en octal et en binaire.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 138
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par hegros
    Tu trouves vraiment que c'est plus clair de l'ecrire en binaire

    Sinon il faut peut etre voir les opérateurs de bit.(&,|,....)
    Oui je trouve que c'est plus car la variable car représente un code d'erreur chaque bit de l'octet correspond à une erreurs bien précise. Donc oui ce serais plus clair si on pouvait le faire en binaire.

    Et je pense que les opérations binaires sont, ici, hors de propos.

  6. #6
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Si les bits ont une signification, alors tu peux definir un ensemble de constantes qui positionnent ces bits
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    #define FLAG1 0x01
    #define FLAG2 0x02
    #define FLAG3 0x04
    #define FLAG4 0x08
    #define FLAG5 0x10
    ...
    Et ensuite utiliser le OU pour affecter les valeurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int val = FLAG1 | FLAG3 | FLAGN;
    Sur la page de Emdel, je crois que ya un ensemble de macros qui permettent de positionner à vrai ou faux un bit particulier.

    Tu peux aussi te pencher du coté des structures à champs de bit.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    struct {
    unsigned int champ1 : 1;
    unsigned int champ2 : 1;
    unsigned int champ3 : 1;
    } mon_objet_a_champs = {
    .champ1 = 1, .champ2 = 0, .champ3 = 1
    };

  7. #7
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Citation Envoyé par fveysseire
    Oui je trouve que c'est plus car la variable car représente un code d'erreur chaque bit de l'octet correspond à une erreurs bien précise. Donc oui ce serais plus clair si on pouvait le faire en binaire.

    Et je pense que les opérations binaires sont, ici, hors de propos.
    J'imagine que les codes d'erreur ne varient pas avec le temps donc pourquoi ne pas définir des constantes


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #define ERR_FAILURE = 0xO1
    ...
     
    MaVar = ERR_FAILURE
    Se sera plus clair dans ce cas non ?
    Ensuite tu peux les combiner avec les opérateurs de bit.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 138
    Points : 124
    Points
    124
    Par défaut
    Tout à fait Hegros, je suis arrivé à la même conclusino.
    Merci pour votre aide.

  9. #9
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Citation Envoyé par fveysseire
    Et je pense que les opérations binaires sont, ici, hors de propos.
    Tu peux t'en servir pour positionner un bit particulier, quand meme.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    unsigned char error_1 = 1 << 0;
    unsigned char error_2 = 1 << 1;
    ...
    Et tu peux definir des constantes en octal. Il suffit que le nombre commence par zero:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int a = 0777; /* 511 */

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 380
    Points : 41 576
    Points
    41 576
    Par défaut
    Citation Envoyé par hegros
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define ERR_FAILURE = 0xO1
    Ça compile, ça? Il y a un O dans le code...

    Citation Envoyé par fveysseire
    C'est étonnant que l'on ne puisse pas. Je comprends l'intérêt de pouvoir le faire en héxa mais je pensais qu'on pouvais aussi le faire en octal et en binaire.
    On peut en octal (hélas!), mais pas en binaire, pour des raisons qui m'échappent.

    Mais les opérations binaires bit-à-bit restent possibles, comme cela a déjà été posté.

  11. #11
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par hegros
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define ERR_FAILURE = 0xO1
    Pas du C... (2 fautes en une ligne quand même. Qui fait mieux ?)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define ERR_FAILURE 0x01

  12. #12
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Gruik
    Sur la page de Emdel, je crois que ya un ensemble de macros qui permettent de positionner à vrai ou faux un bit particulier.
    http://emmanuel-delahaye.developpez..../ed/inc/bits.h

  13. #13
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Pas du C... (2 fautes en une ligne quand même. Qui fait mieux ?)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #define ERR_FAILURE 0x01
    A part le = elle est où la seconde faute ?

    EDIT : Pas vu le post de medinoc.

  14. #14
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Oh bien vu, yavait un O à la place d'un 0

  15. #15
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par fveysseire
    J'ai un souci au niveau d'une affectation :
    Je souhaite affécté une valeur dans une variable sous forme binaire pour simplifier la compréhension de mon programme.
    Les Mickeys, Simpsons et autres vrai g33ks tendance Yakusa qui ont 4 doigts par main et comptent en octal. Les g33ks plus modernes se font greffer 3 doigts de plus par main et comptent en hexadécimal.

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 138
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Les Mickeys, Simpsons et autres vrai g33ks tendance Yakusa qui ont 4 doigts par main et comptent en octal. Les g33ks plus modernes se font greffer 3 doigts de plus par main et comptent en hexadécimal.
    LOL merci pour votre aide je vais utilisé les define.

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

Discussions similaires

  1. Affectation d'une variable à une strucure
    Par god_enel dans le forum C
    Réponses: 4
    Dernier message: 12/04/2007, 11h43
  2. [Smarty] Affectation d'une variable dans le template
    Par wkd dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 05/10/2006, 11h56
  3. erreur d'affectation d'une variable
    Par Myth_Titans dans le forum C++
    Réponses: 3
    Dernier message: 05/07/2006, 21h51
  4. Affectation d'une variable dans un état
    Par tamerlan dans le forum Access
    Réponses: 26
    Dernier message: 04/04/2006, 09h09
  5. [DEBOGUEUR] tracer l'affectation d'une variable
    Par mimil dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 15/03/2006, 17h08

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