Побитовый оператор ИЛИ в 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;