Opérateurs de bits C
Les opérateurs au niveau du bit effectuent des opérations de bits AND (&
), des opérations de bits OR exclusives (^
) et des opérations de bits OR inclusives (|
).
Syntaxe
AND-expression
:
equality-expression
AND-expression
&
equality-expression
exclusive-OR-expression
:
AND-expression
exclusive-OR-expression
^
AND-expression
inclusive-OR-expression
:
exclusive-OR-expression
inclusive-OR-expression
|
exclusive-OR-expression
Les opérandes des opérateurs de bits doivent avoir des types intégraux, mais leurs types peuvent être différents. Ces opérateurs exécutent les conversions arithmétiques habituelles ; le type du résultat est le type de l'opérande après conversion.
Les opérateurs de bits C sont décrits ci-dessous :
Opérateur | Description |
---|---|
& |
L'opérateur de bits AND compare chaque bit de son premier opérande au bit correspondant de son second opérande. Si les deux bits ont pour valeur 1, le bit obtenu correspondant a pour valeur 1. Sinon, il a pour valeur 0. |
^ |
L’opérateur de bits OR exclusif compare chaque bit de son premier opérande au bit correspondant de son second opérande. Si un bit a pour valeur 0 et que l'autre a pour valeur 1, le bit obtenu correspondant a pour valeur 1. Sinon, il a pour valeur 0. |
| |
L’opérateur de bits OR exclusif compare chaque bit de son premier opérande au bit correspondant de son second opérande. Si l'un des deux bits a pour valeur 1, le bit obtenu correspondant a pour valeur 1. Sinon, il a pour valeur 0. |
Exemples
Ces déclarations sont utilisées pour les trois exemples suivants :
short i = 0xAB00;
short j = 0xABCD;
short n;
n = i & j;
Le résultat affecté à n
dans ce premier exemple est le même que i
(0xAB00 hexadécimal).
n = i | j;
n = i ^ j;
L’OR inclusif au niveau du bit dans le deuxième exemple entraîne la valeur 0xABCD (hexadécimale), tandis que l’opération OR exclusive au niveau du bit dans le troisième exemple produit 0xCD (hexadécimal).
Section spécifique à Microsoft
Le résultat d’une opération au niveau du bit sur des entiers signés est défini par l’implémentation conformément à la norme ANSI C. Pour le compilateur Microsoft C, les opérations au niveau du bit sur les entiers signés fonctionnent de la même façon que les opérations au niveau du bit sur les entiers non signés. Par exemple, les valeurs -16 & 99
peuvent être exprimées au format binaire sous la forme
11111111 11110000
& 00000000 01100011
_________________
00000000 01100000
Le résultat de l'opération de bits AND est 96 décimal.
FIN de la section spécifique à Microsoft
Voir aussi
Opérateur de bits AND : &
Opérateur de bits OR exclusif : ^
Opérateur de bits OR inclusif : |