Sdílet prostřednictvím


Bitové operátory jazyka C

Bitové operátory provádějí bitové operace AND (&), bitwise-exclusive-OR (^) a bitwise-inclusive-OR (|).

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

Operandy bitových operátorů musí mít celočíselné typy, ale jejich typy se mohou lišit. Tyto operátory provádějí obvyklé aritmetické převody; typ výsledku je typ operandů po převodu.

Bitové operátory jazyka C jsou popsány níže:

Operátor Popis
& Bitový operátor AND porovnává každý bit svého prvního operandu s odpovídajícím bitem druhého operandu. Pokud jsou oba bity 1, je odpovídající bit výsledku nastaven na hodnotu 1. V opačném případě je odpovídající bit výsledku nastaven na hodnotu 0.
^ Operátor OR s bitovým výhradním operátorem OR porovnává každý bit svého prvního operandu s odpovídajícím bitem svého druhého operandu. Pokud je jeden bit 0 a druhý bit je 1, odpovídající bit výsledku je nastaven na 1. V opačném případě je odpovídající bit výsledku nastaven na hodnotu 0.
| Bitový operátor OR porovnává každý bit svého prvního operandu s odpovídajícím bitem svého druhého operandu. Pokud je některý bit 1, nastaví se odpovídající bit výsledku na 1. V opačném případě je odpovídající bit výsledku nastaven na hodnotu 0.

Příklady

Tyto deklarace se používají pro následující tři příklady:

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

n = i & j;

Výsledek přiřazený n v tomto prvním příkladu je stejný jako i (0xAB00 šestnáctkové).

n = i | j;

n = i ^ j;

Bitový operátor OR ve druhém příkladu má za následek hodnotu 0xABCD (šestnáctkové), zatímco bitové exkluzivní OR ve třetím příkladu vytvoří 0xCD (šestnáctkové).

Specifické pro Microsoft

Výsledkem bitové operace u podepsaných celých čísel je implementace definovaná podle standardu jazyka C. U kompilátoru Jazyka Microsoft C fungují bitové operace s bitovými celými čísly stejným způsobem jako bitové operace u celých čísel bez znaménka. Dá se například -16 & 99 vyjádřit v binární soustavě jako

  11111111 11110000
& 00000000 01100011
  _________________
  00000000 01100000

Výsledek bitové bitové funkce AND je 96 desetinných míst.

END Microsoft Specific

Viz také

Bitový operátor AND: &
Bitový exkluzivní operátor OR: ^
Bitový inkluzivní operátor OR: |