|
- побитовый оператор OR
, где ||
- логический оператор OR
.А именно, первый используется для «объединения» битов из двух числовых значений в виде объединения, тогда как последний оценивается как «истина», если какое-либо условие в левой или правой части оператора является истинным.
В частности, поразряднооператоры ( не , которые следует путать с логическими операторами) работают с каждым битом чисел (в той же порядковой позиции) и соответственно вычисляют результат.В случае побитового OR
результирующий бит равен 1, если любой бит равен 1, и 0 только, если оба бита равны 0. Например, 1 | 2 = 3, потому что:
1 = 0001
2 = 0010
--------
0011 = 3
Кроме того, 2 | 3 = 3, потому что:
2 = 0010
3 = 0011
--------
0011 = 3
Поначалу это может показаться запутанным, но в конечном итоге вы это понимаете.Побитовый OR
используется в основном для установки флагов в битовом поле.То есть значение, содержащее состояние включения / выключения для набора связанных условий в одном значении (обычно 32-разрядное число).В Win32 значение стиля окна является хорошим примером битового поля, где каждый стиль представлен одним битом (или флагом), например WS_CAPTION, который указывает, имеет ли окно строку заголовка.