C operadores bit a bit
Os operadores bit a bit executam bit a bit- E (e), bit a bit exclusivo ou (^) e (OR bit a bit-inclusive**|**) operações.
Sintaxe
Expressão e:
expressão de igualdadeExpressão e & expressão de igualdade
exclusivo-OR-expressão:
Expressão de ANDexclusivo-OR-expressão ^ AND-expression.
expressão inclusive OR:
expressão de OR exclusivoexpressão inclusive OR | expressão de OR exclusivo
Os operandos de operadores bit a bit devem ter tipos integrais, mas seus tipos podem ser diferentes.Esses operadores realizam conversões aritméticas usuais; o tipo do resultado é o tipo dos operandos após a conversão.
Os operadores bit a bit c estão descritos abaixo:
Operador |
Descrição |
---|---|
& |
O bit a bit- E operador compara cada bit de seu primeiro operando o bit correspondente do seu segundo operando.Se os dois bits são 1, o bit de resultado correspondente é definido como 1.Caso contrário, o bit de resultado correspondente é definido como 0. |
^ |
O operador bit a bit exclusivo ou compara cada bit de seu primeiro operando o bit correspondente do seu segundo operando.Se um bit for 0 e o outro bit for 1, o bit de resultado correspondente é definido como 1.Caso contrário, o bit de resultado correspondente é definido como 0. |
| |
O operador OR bit a bit-inclusive compara cada bit de seu primeiro operando o bit correspondente do seu segundo operando.Se o bit for 1, o bit de resultado correspondente é definido como 1.Caso contrário, o bit de resultado correspondente é 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 este primeiro exemplo é o mesmo que i (0xAB00 hexadecimal).
n = i | j;
n = i ^ j;
O OR bit a bit inclusive no segundo exemplo resulta no valor de 0xABCD (hexadecimal), enquanto o OR exclusivo bit a bit no terceiro exemplo produz 0xCD (hexadecimal).
Específicos do Microsoft
Os resultados da operação bit a bit em inteiros assinados é implementação definidas de acordo com o padrão ANSI C.Para o compilador Microsoft C, operações bit a bit em inteiros assinados funcionam as mesmas operações bit a bit em inteiros não assinados.Por exemplo, -16 & 99 podem ser expressos em notação binária como
11111111 11110000
& 00000000 01100011
_________________
00000000 01100000
O resultado do AND bit a bit é 96 decimal.
Específicos do Microsoft final