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

Описание

Оператор побитового ИЛИ (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;

Смотрите также