^

Descrição

Na linguagem C++ existe um operador um pouco incomum chamado de OU EXCLUSIVO, também conhecido como XOR (Em Inglês é pronunciado "eks-or"), bit-a-bit. O operador XOR bitwise é escrito usando-se o símbolo ^. Uma operação XOR bit-a-bit resulta em 1 apenas se os bits de entrada são diferentes. Se iguais, o resultado é zero.

Precisamente,

0 0 1 1 operando1 0 1 0 1 operando2 ---------- 0 1 1 0 (operando1 ^ operando2) - resultado retornado

Código de Exemplo

int x = 12; // binário: 1100 int y = 10; // binário: 1010 int z = x ^ y; // binário: 0110, ou decimal 6

O operador ^ é frequentemente utilizado para trocar (isto é, mudar de 0 para 1, ou 1 para 0) alguns dos bits em uma expressão inteira. Em uma operação XOR se há um 1 no bit da máscara, aquele bit é invertido; se há um 0, o bit não é invertido e continua o mesmo.

// Nota: Esse código usa registradores específicos para microcontroladores AVR (Uno, Nano, Leonardo, Mega, etc.) // Ele não irá compilar para outras arquiteturas void setup(){ DDRB = DDRB | B00100000; // configura PB5 (pino 13 no Uno/Nano, pino 9 no Leonardo/Micro, pino 11 no Mega) como OUTPUT Serial.begin(9600); } void loop(){ PORTB = PORTB ^ B00100000; // inverte PB5, deixa os outros bits intocados delay(100); }

Ver Também

Exemplo : Tutorial BitMath (Em Inglês)

Please note: These are affiliate links. If you buy the components through these links, We may get a commission at no extra cost to you. We appreciate it.