<< (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