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 :

Une fa�on d'�crire un if que je comprends pas


Sujet :

C++

  1. #1
    Membre actif Avatar de chaospat
    Homme Profil pro
    �tudiant
    Inscrit en
    Mars 2015
    Messages
    45
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 45
    Par d�faut Une fa�on d'�crire un if que je comprends pas
    Il y a un ou deux jours, j'ai vue pour la premi�re fois une fa�on d'�crire un if que je comprend pas, mais elle fonctionne.
    La voici.

    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
     
    int a=3;
    int b=3;
     
    if(a & (b << 4))
       cout << " Vrai " << endl;
    else
      cout << " Faux " << endl;
     
    // ici sa donne Faux, mais
     
    if(a | (b << 4))
       cout << " Vrai " << endl;
    else
      cout << " Faux " << endl;
     
    //ici sa donne Vrai
    Quelqu'un pourrais me dire, si possible avec exemple(s), comment cette mani�re d'�crire un if fonctionne, merci.

  2. #2
    Membre Expert
    Inscrit en
    Mars 2005
    Messages
    1 431
    D�tails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Par d�faut
    Le C++ a h�rit� du C - qui n'a pas de type bool natif - sa capacit� � interpr�ter les valeurs enti�res comme expressions bool�ennes : une valeur de 0 (dont tous les bits sont � z�ro - en tout cas en compl�ment � deux) est interpr�t�e � � faux �, et toute autre valeur � � vrai �.

    Ici on cherche � savoir si l'un des bits � 1 est commun aux deux valeurs (op�rateur bit � bit &) ou si l'une des valeurs poss�de au moins un bit � 1 (op�rateur bit � bit |).

  3. #3
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    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 153
    Billets dans le blog
    4
    Par d�faut
    b << 4 est un d�callage de bits : d�callage de 4 bits vers la gauche de b
    b = 3 = 0000 0011 en binaire
    b<<4 = 0011 0000 = 48
    & est l'op�rateur et binaire (bit � bit)
    a = 3 = 0000 0011
    0000 0011 & 0011 0000 = 00000000 => �valu� � false

    | est l'op�rateur ou binaire
    0000 0011 | 0011 0000 = 0011 0011 => �valu� � true

    on appelle �a g�n�ralement des mask, bitmask ou champ de bits aussi
    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.

  4. #4
    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
    @Bousk, tu es s�r pour "champ de bits", ce n'est pas le nom fran�ais des "bitfields", la chose rare suivante:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    struct Bidule™ {
    signed a :3;
    signed b :2;
    :1;
    unsigned c:2;
    };

  5. #5
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    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 153
    Billets dans le blog
    4
    Par d�faut
    Citation Envoy� par ternel Voir le message
    @Bousk, tu es s�r pour "champ de bits", ce n'est pas le nom fran�ais des "bitfields"
    Je sais pas, j'apele champ de bits juste la notation binaire, c'est un abus mais tout le monde comprend.
    Les mask servent � cr�er les champs, mais finalement c'est la m�me chose, juste du binaire.
    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
    Membre Expert
    Inscrit en
    Mars 2005
    Messages
    1 431
    D�tails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Par d�faut
    C'est le cas en effet, mais cette construction n'est au final que du sucre syntaxique pour la m�me technique, donc utiliser la terminologie dans le contexte g�n�ral comme Bousk l'a fait ne me choque pas perso.

  7. #7
    Membre actif Avatar de chaospat
    Homme Profil pro
    �tudiant
    Inscrit en
    Mars 2015
    Messages
    45
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activit� : �tudiant
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 45
    Par d�faut
    Merci pour l'explication, sa me travaillais de ne pas comprendre

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. une ligne de code de variable SQLwhere que je comprend pas
    Par doogybreton dans le forum VBA Access
    R�ponses: 3
    Dernier message: 23/01/2008, 15h58
  2. [FTP] Pb sur foreach que je comprend pas
    Par Shandler dans le forum Langage
    R�ponses: 3
    Dernier message: 28/12/2006, 18h31
  3. Erreur que je comprends pas
    Par makohsarah dans le forum Langage
    R�ponses: 1
    Dernier message: 30/08/2006, 18h14
  4. Petit truc tout simple que je comprend pas
    Par Olaf MENJI dans le forum G�n�ral JavaScript
    R�ponses: 6
    Dernier message: 29/11/2005, 16h56
  5. R�ponses: 13
    Dernier message: 27/06/2005, 14h36

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