Compartilhar via


Operadores bit a bit C

Os operadores bit a bit executam as operações AND bit a bit (&), OR exclusivo bit a bit (^) e OR inclusivo bit a bit (|).

Sintaxe

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

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 ambos os bits forem 1, o bit de resultado correspondente será definido como 1. Caso contrário, o bit de resultado correspondente é definido como zero (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 de resultado correspondente será definido como 1. Caso contrário, o bit de resultado correspondente é definido como zero (0).
| O operador OR inclusivo bit a bit compara cada bit do primeiro operando com o bit correspondente de seu segundo operando. Se qualquer bit for 1, o bit de resultado correspondente será definido como 1. Caso contrário, o bit de resultado correspondente é definido como zero (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).

Seção específica da Microsoft

O resultado de operação bit a bit em números inteiros assinados é definido pela implementação de acordo com o padrão 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 da seção específica da Microsoft

Confira também

Operador bit a bit AND: &
Operador OR exclusivo bit a bit: ^
Operador OR inclusivo bit a bit: |