Partager via


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-expressioninclusive-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 : |