Esta página também está disponível em outros 2 idiomas.

|

[Bitwise Operators]

Descrição

O operador bitwise OU em C++ é o caractere barra vertical, |. Da mesma forma que o operador &, | opera independentemente em cada bit dos dois operandos, mas seu propósito é diferente (duh!). O resultado da operação OU entre dois bits é 1 se qualquer um ou ambos os bits de entrada são 1, do contrário é 0.

Explicado de outra forma:

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

Código de Exemplo

int a =  92;    // em binário: 0000000001011100
int b = 101;    // em binário: 0000000001100101
int c = a | b;  // resultado:    0000000001111101, ou 125 em decimal.

Um dos usos mais comuns do OU bit-a-bit é "setar" um ou mais bits em um valor.

// Nota: Esse código é específico para a arquitetura AVR
// configura os bits de direção para os pinos 2 a 7, deixa 0 e 1 intocados (xx | 00 == xx)
// Equivale a pinMode(pino, OUTPUT) para os pinos 2 a 7 no Arduino Uno ou Nano
DDRD = DDRD | B11111100;
// o mesmo que pinMode(pino, OUTPUT) para os pinos 2 a 7

Ver Também

LINGUAGEM || OU lógico