Compartir a través de


Operadores bit a bit de C

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

Sintaxis

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

Los operandos de los 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.

A continuación se describen los operadores bit a bit de C:

Operador Descripción
& El operador AND bit a bit 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 utilizan 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 igual a i (0xAB00 hexadecimal).

n = i | j;

n = i ^ j;

El operador OR inclusivo bit a bit del segundo ejemplo produce el valor 0xABCD (hexadecimal), mientras que el operador OR exclusivo bit a bit 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 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 puede expresarse en formato binario como

  11111111 11110000
& 00000000 01100011
  _________________
  00000000 01100000

El resultado de la operación AND bit a bit es 96 (decimal).

FIN de Específicos de Microsoft

Consulte también

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