| (Побитовое ИЛИ)

Побитовый оператор ИЛИ в C++ обозначается символом вертикальной черты |. Как оператор &, | работает независимо с каждым биттом в его двух окружающих целочисленных выражениях, но то, что он делает, отличается. Побитовое ИЛИ двух битов равно 1, если один или оба входных бита равны 1, в противном случае - 0.

Другими словами:

0 0 1 1   операнд1
0 1 0 1   операнд2
-------
0 1 1 1   (операнд1 | операнд2) - возвращаемый результат


Пример кода

int a = 92; //  в двоичной: 0000000001011100
int b = 101; //в двоичной: 0000000001100101
int c = a | b; // результат: 0000000001111101, или 125 в десятичной.

Одним из наиболее распространенных применений побитового ИЛИ является установка нескольких битов в числе.

// Обратите внимание: Этот код специфичен для архитектуры AVR.
// Устанавливаем направления вывода для выводов 2-7, 
// оставляем PD0 и PD1 нетронутыми (xx | 00 == xx)
// То же, что pinMode (pin, OUTPUT) для выводов 2-7 на Uno или Nano 
DDRD = DDRD | B11111100;