& (Opérateur "bit à bit" ET)

Description

L'opérateur "bit à bit" ET en langage C++ est le symbole & utilisé entre deux expressions entières. L'opérateur "bit à bit" AND opère indépendemment et successivement sur chaque bit unitaire des deux expressions entières présentes de part et d'autre de l'opérateur, selon la règle suivante : si les 2 bits d'entrée sont à 1, le résultat de sortie est 1, sinon le résultat de sortie est 0. Une autre façon d'exprimer ceci :

0 0 1 1 opérande 1 (1ère valeur entière) 0 1 0 1 opérande 2 (2ème valeur entière) ---------- 0 0 0 1 (opérande1 & opérande2) - résultat renvoyé

Syntaxe

Dans le langage Arduino, le type de donnée int est une valeur entière 16 bits, et donc utiliser & entre deux expressions entières int entraîne 16 opérations ET simultanées. Voici un extrait de code réalisant ceci :

int a = 92; // en binaire : 0000000001011100 int b = 101; // en binaire : 0000000001100101 int c = a & b; // résultat : 0000000001000100, ou 68 en décimal.

Chacun des 16 bits des valeurs entières a et b ont été pris en compte par l'instruction ET bit à bit, et les 16 bits résultants ont été stockés dans la variable entière c, donnant le résultat 01000100 en binaire, soit 68 en décimal.

Utilisation

Une des utilisations les plus communes de l'opérateur ET bit à bit est de sélectionner un bit (ou des bits) particulier(s) d'une valeur entière, souvent appelée masque. Voir ci-dessous pour un exemple.

PORTD = PORTD & B00000011; // clear out bits 2 - 7, leave pins PD0 and PD1 untouched (xx & 11 == xx)
Please note: These are affiliate links. If you buy the components through these links, We may get a commission at no extra cost to you. We appreciate it.