Bitové operátory jazyka C
Bitové operátory provádějí operace bitový AND (&), bitový exkluzivní OR (^) a bitový OR (|).
Syntax
AND-expression:
equality-expressionAND-expression & equality-expression
exclusive-OR-expression:
AND-expressionexclusive-OR-expression ^ AND-expression
inclusive-OR-expression:
exclusive-OR-expressioninclusive-OR-expression | exclusive-OR-expression
Operandy bitových operátorů musí být celočíselné typy, ale jejich typy mohou být různé.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 |
Description |
---|---|
& |
Operátor bitový-AND porovná každý bit prvního operandu s odpovídajícím bitem druhého operandu.Pokud jsou oba bity rovny 1, je odpovídající výsledný bit nastavena na 1.V opačném případě je odpovídající výsledný bit nastaven na hodnotu 0. |
^ |
Operátor bitový-exkluzivní-OR porovná každý bit prvního operandu s odpovídajícím bitem druhého operandu.Pokud je jeden bit 0 a další bit je 1, je odpovídající výsledný bit nastaven na 1.V opačném případě je odpovídající výsledný bit nastaven na hodnotu 0. |
| |
Operátor bitový-OR porovná každý bit prvního operandu s odpovídajícím bitem druhého operandu.Pokud má kterýkoli z bitů hodnotu 1, je odpovídající výsledný bit nastaven na 1.V opačném případě je odpovídající výsledný bit nastaven na hodnotu 0. |
Příklady
Tyto deklarace jsou používány pro následující tři příklady:
short i = 0xAB00;
short j = 0xABCD;
short n;
n = i & j;
Výsledek přiřazený v tomto prvním příkladě do n je stejný jako i (0xAB00 v šestnáctkové soustavě).
n = i | j;
n = i ^ j;
Bitový-OR v druhém příkladu vrátí výslednou hodnotu 0xABCD (šestnáctkově), zatímco bitový-exkluzivní-OR v třetím příkladu vrátí 0xCD (šestnáctkově).
Specifické pro Microsoft
Výsledky bitové operace na celých číslech se znaménkem je definovány podle standardu ANSI C.Pro kompilátor Microsoft jazyka C, bitové operace na celých číslech se znaménkem fungují stejně jako bitové operace na celých číslech bez znaménka.Například -16 & 99 lze vyjádřit binárně jako
11111111 11110000
& 00000000 01100011
_________________
00000000 01100000
Výsledkem operace bitový-AND je desítkové číslo 96.
Specificka produktu Microsoft END