| (побитовое ИЛИ)
Описание
Оператор побитового ИЛИ (OR) в C++ – это символ вертикальной черты |. Как и оператор &, | работает независимо с каждым битом двух окружающих целочисленных выражений, но действует иначе. Побитовое ИЛИ двух бит равно 1, если хотя бы один из входных бит равен 1, в противном случае результат равен 0.
Другими словами:
0 0 1 1 operand1
0 1 0 1 operand2
----------
0 1 1 1 (operand1 | operand2) - возвращаемый результат
Пример кода
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 | 0b11111100;