Bitwise-inclusive-OR assignement

cs_Duc Messages postés 10 Date d'inscription jeudi 2 mai 2002 Statut Membre Dernière intervention 11 février 2004 - 11 févr. 2004 à 14:07
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 - 11 févr. 2004 à 23:17
voila un morceau de code pour expliquer mon probléme:

#define VALUE_1     101
#define VALUE_2     102
#define VALUE_3     103

int  a;

a=VALUE_1|VALUE_3;


voila j'aimeras avoir la méthode pour savoir si oui ou non mon entier a contient la valeur VALUE_3

voila merci d'avance pour vos reponses ;-)

4 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
11 févr. 2004 à 18:54
Salut,
avec un masque:
if(a & VALUE_3)
{
...
}
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
11 févr. 2004 à 18:54
Salut,
avec un masque:
if(a & VALUE_3)
{
...
}
0
cs_Duc Messages postés 10 Date d'inscription jeudi 2 mai 2002 Statut Membre Dernière intervention 11 février 2004
11 févr. 2004 à 23:01
je me suis peut-etre mal exprimé

j'ai donc a=VALUE_1|VALUE_3
le but serait d'avoir ca

if(a contient VALUE_1)
        printf("value 1\n");
if(a contient VALUE_2)
        printf("value 2\n");
if(a contient VALUE_3)
        printf("value 3\n");


au final je devrais avoir dans ma console :

value1
value3


alors qu'avec "&" j'obtiens ceci :

value1
value2
value3


je voudrais avoir le bon opérateur pour mettre a la place de "contient" dans mes conditions...

merci encore !!!
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
11 févr. 2004 à 23:17
Salut,
Effectivement j'avais pas vu que tu utilisais ces valeurs.
Ce systeme ne peut marcher que si chaque nombre de prend qu'un bit, comme par exemple 1, 2, 4, 8, etc...
0
Rejoignez-nous