| (Opérateur bit à bit OU)
Description
L'opérateur OU en langage C++ est la barre verticale | . De la même façon que l'opérateur &, l'opérateur | agit indépendemment sur chaque bit unitaire des deux expressions entières de part et d'autre de l'opérateur, mais il agit d'une façon différente évidemment. L'opérateur "bit à bit" OU de 2 bits donne 1 si l'un des deux ou les deux bits d'entrée est 1, sinon il renvoie 0. En d'autres termes :
Syntaxe
Voici un exemple d'opération OU bit à bit utilisé dans un bout de code C++ :
Exemple
Une utilisation courante des opérateurs bit à bit ET et OU est ce que les programmeurs appellent "Lire-Modifier-Ecrire" sur un port. Sur les microcontrôleurs (et donc sur une carte Arduino), un port est un nombre de 8 bits qui représente l'état des broches. Ecrire sur un port contrôle toutes les broches d'un coup.
Le PORTD est une constante prédéfinie du langage Arduino qui se réfère à l'état des broches du port D, les broches 0 à 7 d'une carte Arduino. Pour chaque bit qui est à 1, la broche est au niveau HAUT. (Les broches doivent biensûr être configurées en sortie à l'aide de l'instruction pinMode.)
Donc, si nous écrivons PORTD=B10001010, nous mettons les broches 1, 3 et 7 au niveau HAUT (le bit de poids faible correspond à la broche 0).
Un problème que nous allons rencontrer ici est que nous allons du coup changer l'état des broches 0 et 1 qui sont utilisées par la carte Arduino pour les communications série, et donc nous allons interférer avec les communications séries.
Notre algorithme pour notre programme sera :
Initialiser le port D et mettre à 0 seulement les bits correspondants aux broches que nous voulons contrôler (avec l'opérateur bit à bit ET).
Combiner la valeur du port D modifié avec la nouvelle valeur pour les broches sous contrôle (avec l'opérateur bit à bit OU).