| : L'opérateur mystère ...

anarchysniper Messages postés 65 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 29 septembre 2005 - 31 mars 2005 à 01:46
anarchysniper Messages postés 65 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 29 septembre 2005 - 31 mars 2005 à 12:25
Question assez stupide dont la réponse serait sans doute facile à
trouver si google n'excluait pas le caractère en question des
recherches.



A quoi coorespond le "|" que l'on utilise par exemple pour inclure
plusieurs constantes dans un DWORD pour la programmation APIs Windaube ?



Merci d'avance !

2 réponses

cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
31 mars 2005 à 06:59
C'est l'operateur 'ou' inclusif, et voila comment ca fonctionne :

Imaginons qu'une constante soit definie comme egale a : a = 01000111 (representation binaire)
Et qu'une autre soit egale a ca : b = 11001001.

a | b = 01000111 | 11001001

Ce 'calcul' s'effectue grace a cette table

Bit op1 1 1 0 0
Bit op2 1 0 1 0
resultat 1 1 1 0

Donc le resultat plus haut sera : 11001111.

Si tu ne comprends pas tres bien, cherche sur le net "opérateur ou inclusif".

+2(p - n)
0
anarchysniper Messages postés 65 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 29 septembre 2005 1
31 mars 2005 à 12:25
Ce qui permet donc de stocker potentiellement dans un octet non moins de 8 valeurs booléennes en "XORant" des puissances de deux :

#define INCLURE_123 (00000001)
#define INCLURE_234 (00000010)
#define INCLURE_345 (00000100)
#define INCLURE_456 (00001000)
#define INCLURE_567 (00010000)
#define INCLURE_678 (00100000)
#define INCLURE_789 (01000000)
#define INCLURE_890 (10000000)

pour choisir 345, 678 et 123, on ferait donc :

INCLURE_345 | INCLURE_678 | INCLURE_123

Ce qui produirait une magnifique chaine binaire en 8 octets (00100101), correspondant à une configuration unique ...

Merci beaucoup pour ton aide AlexMAN !

Arrêtez moi si je me trompe !

Un tableau de bool ce serait plus convivial quant même ...
0
Rejoignez-nous