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.