Operadores bit a bit C
Os operadores bit a bit executam as operações E bit a bit (&), OR exclusivo bit a bit (^) e OR inclusivo bit a bit (|).
Sintaxe
expressão AND:
expressão de igualdadeexpressão AND & expressão de igualdade
expressão OR exclusiva:
expressão ANDexpressão OR exclusiva ^ expressão AND
expressão OR inclusiva:
expressão OR exclusivaexpressão OR inclusiva: | expressão OR exclusiva
Os operandos dos operadores bit a bit devem ter tipos integrais, mas seus tipos podem ser diferentes. Esses operadores executam conversões aritméticas comuns; o tipo do resultado é o tipo dos operandos após a conversão.
Os operadores bit a bit de C são descritos abaixo:
Operador |
Descrição |
---|---|
& |
O operador AND bit a bit compara cada bit do primeiro operando com o bit correspondente de seu segundo operando. Se os dois bits forem 1, o bit de resultado correspondente será definido como 1. Caso contrário, o bit de resultado correspondente será definido como 0. |
^ |
O operador OR exclusivo bit a bit compara cada bit do primeiro operando ao bit correspondente do seu segundo operando. Se um bit for 0 e o outro bit for 1, o bit resultante correspondente será definido como 1. Caso contrário, o bit de resultado correspondente será definido como 0. |
| |
O operador OR inclusivo bit a bit compara cada bit do primeiro operando com o bit correspondente de seu segundo operando. Se um bit for 1, o bit de resultado correspondente será definido como 1. Caso contrário, o bit de resultado correspondente será definido como 0. |
Exemplos
Essas declarações são usadas para os três exemplos a seguir:
short i = 0xAB00;
short j = 0xABCD;
short n;
n = i & j;
O resultado atribuído a n neste primeiro exemplo é o mesmo que i (0xAB00 hexadecimal).
n = i | j;
n = i ^ j;
O operador OR inclusivo bit a bit no segundo exemplo resulta no valor 0xABCD (hexadecimal), enquanto o OU exclusivo bit a bit no terceiro exemplo gerencia 0xCD (hexadecimal).
Específico da Microsoft
Os resultados de operação bit a bit em números inteiros assinados é definido pela implementação de acordo com o padrão ANSI C. Para o compilador C da Microsoft, as operações bit a bit em números inteiros assinados funcionam da mesma forma que as operações bit a bit em inteiros não assinados. Por exemplo, -16 & 99 pode ser expresso em binário como
11111111 11110000
& 00000000 01100011
_________________
00000000 01100000
O resultado do E bit a bit é decimal 96.
FIM de Específico da Microsoft