|

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/

Publications similaires

Laisser un commentaire

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