bitRead()
Description :
Lit un peu d’une variable sur une position spécifique, par exemple bool , int. Noter que float & double
ne sont pas pris en charge. Vous pouvez lire les bits de variables jusqu’à un unsigned long long (64 bits / 8 octets).
Syntaxe :
Utilisez la fonction suivante pour lire l’état du bit n à la position de la variable x :
bitRead(x, n)
Paramètres :
La fonction admet les paramètres suivants :
- x : la variable à partir de laquelle lire.
- n : quel bit lire, en commençant à 0 pour le bit le moins significatif (le plus à droite).
Retours :
La fonction renvoie la valeur du bit (0 ou 1).
Exemple de code :
Cet exemple de code montre comment lire deux variables, un compteur croissant, un compteur décroissant, et imprimer les valeurs binaires et décimales des variables.
La fonction readBit() parcourt chaque bit de la variable (en commençant par le bit le plus à droite) et l’imprime.
long negative_var = -0; // unsigned long long positive_var = 0; //tailles prédéfinies lors de la boucle sur les bits //Par exemple, long_size est de 32 bits (soit 0 à 31). Par conséquent, nous soustrayons « 1 ». const int bool_size = (1 - 1); const int int_size = (8 - 1); const int long_size = (32 - 1); void setup() { Serial.begin(9600); } void loop() { //exécuter la fonction readBit en passant les variables pos/neg readBit("Positive ", positive_var); readBit("Negative ", negative_var); Serial.println(); //augmenter et diminuer les variables negative_var--; positive_var++; delay(1000); } /*Cette fonction prend une variable, l'affiche bit par bit (en commençant par la droite) puis affiche le nombre décimal à des fins de comparaison.*/ void readBit(String direction, long counter) { Serial.print(direction + "Binary Number: "); //parcourir chaque bit en boucle for (int b = long_size; b >= 0; b--) { byte bit = bitRead(counter, b); Serial.print(bit); } Serial.print(" Nombre décimal: "); Serial.println(counter); }
Source : https://docs.arduino.cc/language-reference/en/functions/bits-and-bytes/bitRead/