aula 292

OU EXCLUSIVO. Como funciona a operação OU EXCLUSIVO bit a bit?

Nesta aula vamos aprender como funciona o operador OU EXCLUSIVO ( ^ ) bit a bit na linguagem de programação C. Com esta operação é possível inverter o estado de um determinado bit, ligando se estiver desligado ou desligando se estiver ligado.

A operação bit a bit ^ (ou exclusivo) possui a seguinte tabela verdade.

A B A ^ B
000
011
101
110
Tabela verdade para o operador lógico bit a bit ou exclusivo.

A operação é realizada sobre cada bit e o resultado será 0 sempre que os dois bits da operação forem iguais e 1 quando forem diferentes.

Esta operação é útil quando precisamos inverter o estado de um bit. Seja a seguinte sequência de bits: xxxx.xx1x. Para inverter apenas o bit 1, ou seja, mudá-lo para zero, precisamos da máscara 0000.0010 e a operação ou exclusivo entre os dois, assim:

xxxx.xx1x
^ 0000.0010
————-
xxxx.xx0x

As posições em zero serão mantidas em zero pois serão iguais. As posições em 1 serão mantidas em 1 pois serão diferentes. O bit será desligado pois serão iguais.

Programa de teste:

/*
    Operação ou exclusivo entre a e b
*/

int main(){

    int a, b;

    a = 73; // 01001001 (73 em binário)
    b = a ^ (1 << 3); // 00001000 ( 1 << 3 ), para inverter o bit-3 = 65
    printf("a: %d\tb: %d\n", a, b);

    b = b ^ (1 << 3); // 00010000 ( 1 << 3 ), para inverter o bit-3 = 73
    printf("a: %d\tb: %d\n", a, b);

    return 0;
}

Deixe um comentário

1 × 4 =

Wagner Gaspar

Capixaba de São Gabriel da Palha, Espírito Santo. Bacharel em Ciência da Computação pela Universidade Federal do Amazonas e mestre em informática pela Universidade Federal do Espírito Santo.