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-expression
inclusive-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: |