2.0 KiB
2.0 KiB
Opérateurs bit-à-bit
Les opérateurs bit-à-bit travaillent sur chacun des bits des opérandes.
Inversion bit-à-bit
L'opérateur ~ retourne 0 pour un bit à 1 et 1 pour un bit à 0. C'est un opérateur unaire
| v | r | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|
| a | 73 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 |
| ~a | 182 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 |
ET bit-à-bit
L'opérateur & retourne 1 si les deux bits de même poids sont à 1
| v | r | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|
| a | 73 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 |
| b | 15 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
| a & b | 9 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
OU bit-à-bit
L'opérateur | retourne 1 si l'un ou l'autre des deux bits de même poids est à 1 (ou les deux).
| v | r | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|
| a | 73 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 |
| b | 15 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
| a | b | 79 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 |
OU exclusif bit-à-bit
L'opérateur ^ retourne 1 si un seul des deux bits de même poids est à 1.
| v | r | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|
| a | 73 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 |
| b | 15 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
| a ^ b | 70 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 |
Décalage à droite
Un décalage à droite revient à efectuer un division entière par 2.
| v | r | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|
| a | 73 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 1 |
| a >> 2 | 18 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 |
Décalage à gauche
Un décalage à gauche revient à efectuer une multiplication par 2.
| v | r | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|---|
| a | 9 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
| a << 2 | 36 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 |