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 :

Opérateurs binaires


Sujet :

C++

  1. #1
    Membre éprouvé
    Avatar de Zenol
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Points : 1 054
    Points
    1 054
    Par défaut Opérateurs binaires
    Bonjour, j'ai un petit problème avec els opérateurs binaires.

    J'ai une variable qui contient 16 bits, et j'aimerait changer le 8 ème bits (en partant de la droite) en lui afectant 0. J'ai pensser faire mavar &= 0 << 8, mais c'est tout mavar qui se retrouve avec pour valeur 0;

  2. #2
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Points : 588
    Points
    588
    Par défaut
    [J'ai dis une connerie.]

  3. #3
    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
    0 << 8 va construire un nombre dont le 8ème bit vaut 0.. mais le reste aussi vaudra 0.

    Toi tu veux des 1 partout, à l'exception de ce bit. Pour ça il faut donc prendre le complément à 1 :


  4. #4
    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
    Citation Envoyé par JulienDuSud
    mavar -= 0x10000000
    0x c'est de l'hexadécimal. Avec ton calcul, mavar sera amputée de 268435456.

    D'autant plus que l'opérateur -= est incorrect (que se passe-t-il si le 8eme bit est déjà à 0 ?)

  5. #5
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Points : 588
    Points
    588
    Par défaut
    Citation Envoyé par Loulou24
    0 << 8 va construire un nombre dont le 8ème bit vaut 0.. mais le reste aussi vaudra 0.

    Toi tu veux des 1 partout, à l'exception de ce bit. Pour ça il faut donc prendre le complément à 1 :

    Il ne veut pas initialiser en fait, il veut juste affecter la valeur 0 au 8ème bit

    0x c'est de l'hexadécimal. Avec ton calcul, mavar sera amputée de 268435456.

    D'autant plus que l'opérateur -= est incorrect (que se passe-t-il si le 8eme bit est déjà à 0 ?)
    mea culpa

    Edit pour ci-dessus: k k

  6. #6
    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
    Il ne veut pas initialiser en fait, il veut juste affecter la valeur 0 au 8ème bit
    Je parlais de l'opérande à affecter, pas de l'expression entière qui va bien elle ne changer que le 8ème bit (via l'opérateur &=).

  7. #7
    Membre éprouvé
    Avatar de Zenol
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Points : 1 054
    Points
    1 054
    Par défaut
    Lol merci, mais en fait j'avais trouver la solution ^^ (Quand même deux jours apprès avoir poster le message). Ca ma donner du file a retordre, mais mentenant j'ai comprit. Merci quand même

Discussions similaires

  1. Opérateurs binaires, comportement
    Par Ghurdyl dans le forum C#
    Réponses: 2
    Dernier message: 07/08/2009, 09h09
  2. Question opérateurs binaires
    Par Evocatii dans le forum Langages de programmation
    Réponses: 13
    Dernier message: 15/01/2009, 19h44
  3. [JSTL] Opérateurs binaires dans les JSP
    Par gwinyam dans le forum Struts 1
    Réponses: 4
    Dernier message: 16/07/2008, 15h59
  4. Opérateur binaire en Delphi et en php
    Par Morvan Mikael dans le forum Langage
    Réponses: 5
    Dernier message: 10/04/2008, 09h29
  5. Réponses: 8
    Dernier message: 03/11/2007, 18h01

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