Operadores bit a bit de C
Los operadores bit a bit realizan bit a bit (y), bit a bit-exclusivo-O (^), y bit a bit-inclusivo-O (|) operaciones.
Sintaxis
Y-expresión:
igualdad-expresiónY-expresión y igualdad-expresión
exclusivo-O-expresión:
Y-expresiónY-expresión de**^** de la exclusivo-O-expresión
inclusivo-O-expresión:
exclusivo-O-expresióninclusivo-O-expresión | exclusivo-O-expresión
los operandos de operadores bit a bit deben tener tipos enteros, pero sus tipos pueden ser diferentes.Estos operadores realizan conversiones aritméticas usuales; el tipo del resultado es el tipo de los operandos después de conversión.
Los operadores bit a bit de C se describen a continuación:
Operador |
Descripción |
---|---|
& |
El operador bit a bit compara cada bit del primer operando al bit correspondiente del segundo operando.Si ambos bits son 1, el bit correspondiente del resultado se establece en 1.Si no, el bit correspondiente del resultado se establece en 0. |
^ |
Bit a bit-exclusivo-O operador compara cada bit del primer operando al bit correspondiente del segundo operando.Si un bit es 0 y el otro bit es 1, el bit correspondiente del resultado se establece en 1.Si no, el bit correspondiente del resultado se establece en 0. |
| |
Bit a bit-inclusivo-O operador compara cada bit del primer operando al bit correspondiente del segundo operando.Si el bit es 1, el bit correspondiente del resultado se establece en 1.Si no, el bit correspondiente del resultado 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 que i (hexadecimal 0xAB00).
n = i | j;
n = i ^ j;
El bit a bit-inclusivo OR en el segundo ejemplo produce el valor 0xABCD (hexadecimal), mientras que el bit a bit-exclusivo OR en el tercer ejemplo genera 0xCD (hexadecimal).
Específicos de Microsoft
Los resultados de la operación bit a bit en enteros con signo son implementación-definido según el estándar ANSI C.Para Microsoft C, operaciones bit a bit de trabajo firmado de enteros igual que operaciones bit a bit en enteros sin signo.Por ejemplo, -16 & 99 puede expresarse en binario como
11111111 11110000
& 00000000 01100011
_________________
00000000 01100000
El resultado de la operación de AND bit a bit es 96 decimales.
Específico de Microsoft de FINAL