<< (décalage du bit à gauche)

Description :

L’opérateur de décalage à gauche << provoque le décalage vers la gauche des bits de l’opérande de gauche du nombre de positions spécifié par l’opérande de droite.

Syntaxe

variable << number_of_bits;

Paramètres :

variable : Types de données autorisés : byteintlong .
number_of_bits : un nombre qui est < = 32. Types de données autorisés : int .

Exemple de code :

int a = 5;      // binary: 0000000000000101
int b = a << 3; // binary: 0000000000101000, ou 40 en décimal

 

Remarques et avertissements :

Lorsque vous décalez une valeur x de y bits (x << y), les bits y les plus à gauche de x sont perdus, littéralement supprimés :

int x = 5;  // binaire: 0000000000000101
int y = 14;
int result = x << y;  // binaire: 0100000000000000 - le premier 1 sur 101 a été rejeté

 

Si vous êtes certain qu’aucun de ceux d’une valeur ne tombe dans l’oubli, une façon simple de penser à l’opérateur de décalage à gauche est qu’il multiplie l’opérande de gauche par 2 élevé à la puissance de l’opérande de droite. Par exemple, pour générer des puissances de 2, les expressions suivantes peuvent être utilisées :

   Opération  Résultat
   ---------  ------
    1 <<  0      1
    1 <<  1      2
    1 <<  2      4
    1 <<  3      8
    ...
    1 <<  8    256
    1 <<  9    512
    1 << 10   1024
    ...

 

L’exemple suivant peut être utilisé pour imprimer la valeur d’un octet reçu sur le moniteur série, en utilisant l’opérateur de décalage à gauche pour se déplacer le long de l’octet du bas (LSB) au haut (MSB), et imprimer sa valeur binaire :

// Imprime la valeur binaire (1 ou 0) de l'octet
void printOut1(int c) {
  for (int bits = 7; bits > -1; bits--) {
    // Comparer les bits 7-0 en octet
    if (c & (1 << bits)) {
      Serial.print("1");
    }
    else {
      Serial.print("0");
    }
  }
}

 


 

Source : https://www.arduino.cc/reference/en/language/structure/bitwise-operators/bitshiftleft/

 

Laisser un commentaire