C Bitwise-operators

De bitsgewijze operatoren voeren bitwise-AND-bewerkingen (&), bitwise-exclusive-OR (^) en bitwise-inclusive-OR-bewerkingen uit|.

Syntaxis

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

De operanden van bitsgewijze operatoren moeten integrale typen hebben, maar hun typen kunnen verschillen. Deze operators voeren de gebruikelijke rekenkundige conversies uit; het type van het resultaat is het type operanden na conversie.

De C-bitsgewijze operators worden hieronder beschreven:

Operateur Beschrijving
& De bitwise-AND-operator vergelijkt elke bit van de eerste operand met de bijbehorende bit van de tweede operand. Als beide bits 1 zijn, wordt de bijbehorende resultaatbit ingesteld op 1. Anders wordt de bijbehorende resultaatbit ingesteld op 0.
^ De bitwise-exclusive-OR-operator vergelijkt elke bit van de eerste operand met de bijbehorende bit van de tweede operand. Als de ene bit 0 is en de andere bit 1 is, wordt de bijbehorende resultaat-bit ingesteld op 1. Anders wordt de bijbehorende resultaatbit ingesteld op 0.
| De operator bitwise-inclusive-OR vergelijkt elke bit van de eerste operand met de bijbehorende bit van de tweede operand. Als een van beide bits 1 is, wordt de bijbehorende resultaatbit ingesteld op 1. Anders wordt de bijbehorende resultaatbit ingesteld op 0.

Voorbeelden

Deze declaraties worden gebruikt voor de volgende drie voorbeelden:

short i = 0xAB00;
short j = 0xABCD;
short n;

n = i & j;

Het resultaat dat n in dit eerste voorbeeld is toegewezen, is hetzelfde als i (0xAB00 hexadecimaal).

n = i | j;

n = i ^ j;

De bitwise-inclusive OR in het tweede voorbeeld resulteert in de waarde 0xABCD (hexadecimaal), terwijl de bitwise-exclusieve OR in het derde voorbeeld 0xCD produceert (hexadecimaal).

Microsoft-specifieke

Het resultaat van een bitsgewijze bewerking op ondertekende gehele getallen wordt door de implementatie gedefinieerd volgens de C-standaard. Voor de Microsoft C-compiler werken bitsgewijze bewerkingen op ondertekende gehele getallen hetzelfde als bitwise bewerkingen op niet-ondertekende gehele getallen. Kan bijvoorbeeld -16 & 99 worden uitgedrukt in binair als

  11111111 11110000
& 00000000 01100011
  _________________
  00000000 01100000

Het resultaat van de bitsgewijze AND is 96 decimaal.

Microsoft-specifieke beëindigen

Zie ook

Bitsgewijze AND-operator: &
Bitwise Exclusieve OR-operator: ^
Bitwise Inclusief OF-operator: |