Operadores bit a bit de C

Los operadores bit a bit realizan operaciones bit a bit AND (&), OR exclusivo bit a bit (^) y OR bit a bit-inclusive-OR (|).

Sintaxis

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

Los operandos de operadores bit a bit deben tener tipos enteros, pero sus tipos pueden ser diferentes. Estos operadores realizan las conversiones aritméticas habituales; el tipo del resultado es el tipo de los operandos después de la conversión.

Los operadores bit a bit de C se describen a continuación:

Operador Descripción
& El operador bit a bit-AND compara cada bit de su primer operando con el bit correspondiente de su segundo operando. Si ambos bits son 1, el bit del resultado correspondiente se establece en 1. De lo contrario, el bit del resultado correspondiente se establece en 0.
^ El operador OR exclusivo bit a bit compara cada bit de su primer operando con el bit correspondiente de su segundo operando. Si un bit es 0 y el otro bit es 1, el bit del resultado correspondiente se establece en 1. De lo contrario, el bit del resultado correspondiente se establece en 0.
| El operador OR inclusivo bit a bit compara cada bit de su primer operando con el bit correspondiente de su segundo operando. Si uno de los dos bits es 1, el bit del resultado correspondiente se establece en 1. De lo contrario, el bit del resultado correspondiente se establece en 0.

Ejemplos

Estas declaraciones se usan para los tres ejemplos siguientes:

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

n = i & j;

El resultado asignado a n en este primer ejemplo es el mismo que i (0xAB00 hexadecimal).

n = i | j;

n = i ^ j;

El OR bit a bit inclusivo en el segundo ejemplo da como resultado el valor 0xABCD (hexadecimal), mientras que el OR bit a bit exclusivo del tercer ejemplo genera 0xCD (hexadecimal).

Específicos de Microsoft

El resultado de una operación bit a bit en enteros con signo se define en función de la implementación según el estándar de C. Para el compilador de Microsoft C, las operaciones bit a bit en enteros con signo funcionan igual que las operaciones bit a bit en enteros sin signo. Por ejemplo, -16 & 99 se puede expresar en binario como

  11111111 11110000
& 00000000 01100011
  _________________
  00000000 01100000

El resultado del AND bit a bit es 96 decimal.

FIN Específico de Microsoft

Consulte también

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