Opérateurs Bitwise en JavaScript

Introduction aux opérateurs bitwise

Les opérateurs bitwise en JavaScript agissent sur des opérandes de 32 bits. En coulisses, JavaScript convertit les nombres en virgule flottante de 64 bits en entiers signés de 32 bits avant de procéder à l'opération. Une fois l'opération effectuée, le résultat est reconverti en un nombre en virgule flottante de 64 bits.

Les différents opérateurs bitwise

JavaScript utilise un certain nombre d'opérateurs bitwise :

| Opérateur | Nom | Description | |-----------|---------------|--------------------------------------------------------| | & | AND | Résultat est 1 si les deux bits sont 1, sinon 0. | | | | OR | Résultat est 1 si au moins un des bits est 1, sinon 0.| | ^ | XOR | Résultat est 1 si les bits sont différents, sinon 0. | | ~ | NOT | Résultat est 1 si le bit est 0, sinon 0. | | << | Décalage à gauche | Ajoute des zéros à droite, les bits les plus à gauche sont perdus. | | >> | Décalage à droite signé | Copie le bit le plus à gauche, perd le bit le plus à droite. | | >>> | Décalage à droite logique | Ajoute des zéros à gauche, perd le bit le plus à droite.

Exemples de l'utilisation des opérateurs bitwise

Voici quelques exemples pratiques :

Opérateur AND

console.log(19 & 7); // Résultat : 3
// 10011 = 19
// 00111 =  7
// 00011 =  3

Opérateur OR

console.log(19 | 7); // Résultat : 23
// 10011 = 19
// 00111 =  7
// 10111 = 23

Opérateur XOR

console.log(19 ^ 7); // Résultat : 20
// 10011 = 19
// 00111 =  7
// 10100 = 20

Opérateur NOT

Lorsqu'on effectue l'opération NOT, le nombre change de signe et son absolu augmente de 1.

console.log(~19); // Résultat : -20
// 00000000000000000000000000010011 = 19
// 11111111111111111111111111101100 = -20

Décalage à gauche

console.log(19 << 3); // Résultat : 152
// 00000000000000000000000000010011 = 19
// 00000000000000000000000010011000 = 152

Décalage à droite signé

console.log(19 >> 3); // Résultat : 2
// 00000000000000000000000000010011 = 19
// 00000000000000000000000000000010 = 2
console.log(-20 >> 3); // Résultat : -3
// 11111111111111111111111111101100 = -20
// 11111111111111111111111111111101 = -3

Décalage à droite logique

console.log(19 >>> 3); // Résultat : 2
// 00000000000000000000000000010011 = 19
// 00000000000000000000000000000010 = 2
console.log(-20 >>> 3); // Résultat : 536870909
// 11111111111111111111111111101100 = -20
// 00011111111111111111111111111101 = 536870909

Conclusion et utilisation pratique des opérateurs bitwise

Les opérateurs bitwise peuvent sembler complexes au premier abord, mais ils offrent des possibilités puissantes pour manipuler les données à un niveau bas. Ils sont particulièrement utiles dans des applications comme le traitement d'images, les jeux vidéo, et d'autres domaines où la performance est critique.