Partager via


Opérateurs de bits C

Les opérateurs de bits exécutent l'opération de bits ET (&), de bits OU-Exclusif (^), et de bits OU-inclusif (| ) opérations.

Syntaxe

  • expression ET:
    Expressions d'égalité

    expression ET**&** expression d'égalité

  • expression OU-exclusif:
    Expression ET

    expression OU-exclusif ^ expression ET

  • expression OU-inclusif:
    expression OU-exclusif

    expression OU-inclusif | expression OU-exclusif

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 des opérandes après conversion.

Les opérateurs de bits C sont décrits ci-dessous :

Opérateur

Description

&

L'opérateur de bits ET compare chaque bit de son premier opérande au bit correspondant de son second opérande. Si les deux bits sont 1, le bit de résultat correspondant a la valeur 1. Sinon, le bit correspondant de résultat a la valeur 0.

^

L'opérateur de bits OU-exclusif compare chaque bit de son premier opérande au bit correspondant de son second opérande. Si un bit est 0 et l'autre bits est 1, le bit de résultat correspondant a la valeur 1. Sinon, le bit de résultat correspondant a la valeur 0.

|

L'opérateur de bits OU-inclusif compare chaque bit de son premier opérande au bit correspondant de son second opérande. Si l'un des bits est 1, le bit de résultat correspondant a la valeur 1. Sinon, le bit de résultat correspondant a la 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 assignée à n dans ce premier exemple est identique à i (hexadécimale 0xAB00).

n = i | j;

n = i ^ j;

L'opérateur de bits OU-inclusif dans le deuxième exemple produit la valeur 0xABCD (hexadécimal), alors que l'opérateur de bits OU-exclusif dans le troisième exemple produit 0xCD (hexadécimal).

Spécifique à Microsoft

Les résultats de l'opération de bits sur les entiers signés est une implémentation définie selon la norme C ANSI. Pour le compilateur C Microsoft, les opérations de bits sur les entiers signés fonctionnent de manières identiques aux opérations de bits sur des entiers non signés. Par exemple, -16 & 99 peut aussi être exprimé en binaire comme

  11111111 11110000
& 00000000 01100011
  _________________
  00000000 01100000

Le résultat de l'opérateur de bit ET est la décimale 96.

END Spécifique à Microsoft

Voir aussi

Référence

Opérateur de bits AND : &

Opérateur de bits OR exclusif : ^

Opérateur de bits OR inclusif : |