Guide JavaScript 1.5:Opérateurs:Opérateurs bit-à-bit
Un article de MDC.
Sommaire |
[modifier] Opérateurs bit-à-bit
Les opérateurs bit-à-bit traitent leurs opérandes comme des séries de 32 bits (un bit = zéro ou un) plutôt que comme des nombres décimaux, hexadécimaux ou octaux. À titre d'exemple, le nombre décimal neuf a une réprésentation binaire de 1001. Les opérateurs bit-à-bit effectuent toutes leurs opérations sur de telles représentations binaires, mais elles renvoient des valeurs numériques JavaScript classiques.
Le tableau suivant résume les opérateurs bit-à-bit de JavaScript.
| Opérateur | Emploi | Description |
|---|---|---|
| ET bit-à-bit (AND) | a & b |
Place un 1 à chaque position où les bits correspondants des deux opérandes sont des 1, et renvoie la valeur ainsi obtenue. |
| OU bit-à-bit (OR) | a | b |
Place un 1 à chaque position où au moins un des bits correspondants des deux opérandes est un 1 (les deux bits correspondants peuvent être égaux à 1), et renvoie la valeur ainsi obtenue. |
| OU EXCLUSIF bit-à-bit (XOR) | a ^ b |
Place un 1 à chaque position où un seul des bits correspondants des deux opérandes est un 1 (les deux bits correspondants ne peuvent être égaux à 1), et renvoie la valeur ainsi obtenue. |
| OPPOSÉ bit-à-bit (NOT) | ~ a |
Inverse les bits de son opérande. |
| Décalage vers la gauche | a << b |
Décale la représentation binaire de a de b bits vers la gauche, en ajoutant des zéros à droite. |
| Décalage vers la droite (préservation du signe) | a >> b |
Décale la représentation binaire de a de b bits vers la droite, les bits décalés étant éliminés. |
| Décalage vers la droite avec zéros | a >>> b |
Décale la représentation binaire de a de b bits vers la droite, en ajoutant des zéros à gauche, les bits décalés étant éliminés. |
Tableau : Opérateurs bit-à-bit
[modifier] Opérateurs bit-à-bit logiques
Conceptuellement, les opérateurs bit-à-bit logiques fonctionnent de la manière suivante :
- Les opérandes sont convertis en entiers codés sur trente-deux bits et interprétées comme des séries de bits (un bit = zéro ou un).
- Chaque bit du premier opérande est associé au bit correspondant du deuxième opérande : le premier bit avec le premier bit, le deuxième bit avec le deuxième, etc.
- L'opérateur est appliqué à chaque paire de bits, et le résultat est construit en regroupant le tout.
À titre d'exemple, la représentation binaire de neuf est 1001 et la représentation binaire de quinze est 1111. Voici les résultats de l'application des opérateurs bit-à-bit à ces valeurs :
-
15 & 9renvoie9(1111 & 1001 == 1001) -
15 | 9renvoie15(1111 | 1001 == 1111) -
15 ^ 9renvoie6(1111 ^ 1001 == 0110)
[modifier] Décalage bit-à-bit
Les opérateurs de décalage bit-à-bit acceptent deux opérandes : le premier représente l'entité devant être décalée, le deuxième spécifie le nombre de bits de la première opérande à décaler. La direction de l'opération de décalage dépend de l'opérateur utilisé.
Les opérateurs de décalage convertissent leurs opérandes en entiers codés sur trente-deux bits et renvoient un résultat du même type que l'opérande de gauche.
Voici la liste des opérateurs de décalage :
| Opérateur | Description | Exemple |
|---|---|---|
<<(Décalage vers la gauche) |
Cet opérateur décale le premier opérande du nombre spécifié de bits vers la gauche. Les bits décalés sont éliminés. Des zéros sont ajoutés à droite. | 9<<2 renvoie 36, car 1001 décalé de 2 bits vers la gauche devient 100100, c'est-à-dire 36. |
>>(Décalage vers la droite avec préservation du signe) |
Cet opérateur décale le premier opérande du nombre spécifié de bits vers la droite. Les bits décalés sont éliminés. Des copies du bit le plus à gauche sont ajoutées à gauche. | 9>>2 renvoie 2 car 1001 décalé de 2 bits vers la droite devient 10, c'est-à-dire 2. De même, -9>>2 renvoie -3 car il y a préservation du signe. |
>>>(Décalage vers la droite avec zéros) |
Cet opérateur décale le premier opérande du nombre spécifié de bits vers la droite. Les bits décalés sont éliminés. Des zéros sont ajoutés à gauche. | 19>>>2 renvoie 4, car 10011 décalé de 2 bits vers la droite devient 100, c'est-à-dire 4. Pour les nombres positifs, le décalage vers la droite avec zéros et le décalage vers la droite avec préservation du signe renvoient le même résultat. |
Tableau : Opérateurs de décalage bit-à-bit