^ (XOR)

resultado = a ^ b

O ^ (XOR, ou "OU exclusivo") liga o bit do resultado quando os dois bits comparados são diferentes — um 0 e um 1. Se forem iguais, dá 0. Um truque muito útil dele é inverter bits específicos: fazer XOR com 1 vira o bit de cabeça pra baixo.

Sintaxe

resultado = a ^ b;

Parâmetros

  • a, b: os dois valores inteiros cujos bits serão comparados.

Retorno

Um inteiro em que cada bit vale 1 quando os bits correspondentes de a e b são diferentes.

Exemplo

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  Serial.begin(9600);
}

byte estado = 0;

void loop() {
  // inverte o bit 0 a cada volta (pisca sem variável de flag extra)
  estado = estado ^ 0b00000001;
  digitalWrite(LED_BUILTIN, estado);
  delay(500);
}

Notas e cuidados

  • x ^ x sempre dá 0 (todo bit é igual a si mesmo).
  • Fazer XOR duas vezes com o mesmo valor volta ao original — base de muitos truques e de cifras simples.
  • Não é potência! Em C/C++ o ^ é XOR; pra elevar use pow().

Quer aprender a usar isso em projetos reais, do zero?

Conhecer o Curso Maker