Como usar o operador bit a bit OU exclusivo (XOR) em C Programming

XOR é o exclusivo operador OR em programação C, mais um operador lógico bit a bit. E para responder a sua pergunta mais premente, você pronuncia XOR como # 147-Zor. # 148- É o nome do mal perfeita da ficção científica ruim.

A operação XOR é meio estranho, mas tem seu charme. Na operação XOR, os bits são comparados uns com os outros, assim como a e | operadores. Quando dois bits são idênticos, XOR tosse a 0. Quando os dois bits são diferentes, XOR cospe um 1. Como de costume, um exemplo de programa ajuda a explicar as coisas.

O operador C linguagem XOR é o carácter circunflexo: ^. Você pode encontrá-lo colocar em ação na Linha 14 em É exclusivo OR.

É EXCLUSIVO OU

#include char * binbin (int n) -int main () {int a, x, ra = 73 x = 170-printf ( "% 3d n% s", binbin (a), a) -printf ( " ^% s% 3D n ", binbin (X), X) -r = a ^ x-printf (" =% s% 3D n ", binbin (R), r) -Retornar (0) -} carvão * binbin (int n) {bin static char [9] -int x-for (x = 0-xlt; 8-x ++) {bin [x] = n 0x80? '1': '0'-n lt; lt; = 1} bin [x] = ' 0'-retorno (bin) -}

Exercício 1: Digite o código fonte a partir É exclusivo OR em seu editor. Criar e executar para ver como a operação XOR afeta valores binários.

A coisa encantadora sobre a operação XOR é que se você usar o mesmo valor XOR em uma variável duas vezes, você recebe de volta o valor inicial da variável.

exercício 2: Modificar o código fonte a partir É exclusivo OR de modo que a operação mais uma XOR tem lugar. Inserir essas três declarações após a linha 15:

printf ( "^% s% 3D n", binbin (X), X) = -a r ^ x-printf ( "% 3D N =% s", binbin (a), a) -

Construir e executar. A saída parece com isso:

 01001001 73 ^ 10101010 170 = 11100011 227 ^ 10101010 170 = 01001001 73

Usando o mesmo valor XOR de 170 transforma o valor de 73 pela primeira vez em 227 e, em seguida, volta para 73.

Porque XOR é o OR exclusivo do operador, alguns programadores referem-se ao bit a bit padrão ou operador como a inclusivo OR operador.

menu