|

& (ET au niveau du bit)


Description :

L’opérateur ET bit à bit en C++ est une simple esperluette &, utilisée entre deux autres expressions entières. L’opérateur ET bit à bit opère indépendamment sur chaque position de bit des expressions environnantes, selon la règle suivante : si les deux bits d’entrée sont à 1, la sortie résultante est 1 ; sinon, la sortie est 0.

Autre façon d’exprimer cela :

0  0  1  1    operand1
    0  1  0  1    operand2
    ----------
    0  0  0  1    (operand1 & operand2) - returned result

Dans Arduino, le type int est une valeur de 16 bits, donc l’utilisation de & entre deux expressions int provoque 16 opérations et simultanées.

Exemple de code :

Dans un fragment de code comme :

int a =  92;    // in binary: 0000000001011100
    int b = 101;    // in binary: 0000000001100101
    int c = a & b;  // result:    0000000001000100, ou 68 en décimal.

Chacun des 16 bits de a et b est traité par l’opérateur ET bit à bit, et les 16 bits résultants sont stockés dans c, ce qui donne la valeur 01000100 en binaire, soit 68 en décimal.

L’une des utilisations les plus courantes de l’opérateur ET bit à bit est la sélection d’un ou plusieurs bits spécifiques dans une valeur entière, souvent appelée masquage. Voir ci-dessous un exemple (propre à l’architecture AVR).

PORTD = PORTD & 0b00000011;  // clear out bits 2 - 7, laissez les broches PD0 et PD1 intactes (xx & 11 == xx)


Source : https://docs.arduino.cc/language-reference/en/structure/bitwise-operators/bitwiseAnd/

Publications similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *