Логические операторы в С++
В языке Си результатом логической операции служит целое число,
любое целое число, не равное 0, интерпретируется как истина;
Пример
int a=1;
if (a-1) a++;
Логические операторы
&& — логическое И
|| — логическое ИЛИ
! — отрицание
Пример
if (a>0)&&(a<10) a++;
if (!(a>0)) a++;
if (a>0)||(a<10) a++;
Поразрядные (битовые) логические операторы:
& ( или and ),
| ( или OR ),
^ ( или XOR ),
— ( или NOT ),
<< сдвиг влево,
>> сдвиг вправо.
Пример
Пусть a=a & 127;
Тогда,
если a=65, т.е. 11000001
и число 127 есть 01111111
В итоге будет 01000001
Если соответствующие разряды одинаковы, то в результате имеем 1, иначе имеем 0. Так работает операция «and» или логическое умножение.
Аналогично работают другие битовые логические операторы.