C Bitenkénti operátorok

A bitenkénti operátorok BITWISE-AND (&), bitwise-exclusive-OR (^) és bitwise-inclusive-OR (|) műveleteket hajtanak végre.

Szemantika

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

A bitenkénti operátorok operandusainak integráltípusokkal kell rendelkezniük, de típusuk eltérő lehet. Ezek az operátorok a szokásos számtani átalakításokat hajtják végre; az eredmény típusa az átalakítás utáni operandusok típusa.

A C bitenkénti operátorokat az alábbiakban ismertetjük:

Operátor Leírás
& A bitenkénti ÉS operátor az első operandus minden egyes bitjét összehasonlítja a második operandus megfelelő bitével. Ha mindkét bit 1, a megfelelő eredménybit értéke 1. Ellenkező esetben a megfelelő eredménybit értéke 0.
^ A bitenkénti kizárólagos-OR operátor az első operandus minden egyes bitjét összehasonlítja a második operandus megfelelő bitével. Ha az egyik bit 0, a másik bit 1, akkor a megfelelő eredménybit értéke 1. Ellenkező esetben a megfelelő eredménybit értéke 0.
| A bitenkénti-befogadó-OR operátor az első operandus minden egyes bitjét összehasonlítja a második operandus megfelelő bitével. Ha bármelyik bit 1, a megfelelő eredménybit értéke 1. Ellenkező esetben a megfelelő eredménybit értéke 0.

Példák

Ezeket a deklarációkat a következő három példához használjuk:

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

n = i & j;

Az első példában szereplő n eredmény ugyanaz, mint i (0xAB00 hexadecimális).

n = i | j;

n = i ^ j;

A bitenkénti vagy a második példában a 0xABCD (hexadecimális) értéket, míg a bitenkénti vagy a harmadik példában a 0xCD (hexadecimális) eredményt adja.

Microsoft-specifikus

Az aláírt egész számok bitenkénti műveletének eredménye a implementáció a C szabványnak megfelelően van definiálva. A Microsoft C fordító esetében az aláírt egész számok bitenkénti műveletei ugyanúgy működnek, mint az aláíratlan egész számok bitenkénti műveletei. Például -16 & 99 binárisan is kifejezhető

  11111111 11110000
& 00000000 01100011
  _________________
  00000000 01100000

Az AND bitenkénti eredménye 96 decimális.

END Microsoft-specifikus kifejezés

Lásd még

Bitenkénti ÉS operátor: &
Bitwise exclusive OR operátor: ^
Bitenkénti befogadó VAGY operátor: |