Логические операторы используются для логических значений, поскольку true
равно 1, а false
равно 0. Если вы используете (двоичные) числа, отличные от 1 и 0, то любое число, отличное от нуля, становится единицей.Пример: int x = 5;
(101 в двоичном формате) int y = 0;
(0 в двоичном) В этом случае при печати x && y
будет напечатано 0
, потому что 101 был изменен на 1, а 0 был сохранен на нуле: это то же самоекак печать true && false
, которая возвращает false
(0).С другой стороны, побитовые операторы выполняют операцию с каждым битом двух операндов (отсюда и термин «побитовый»).Пример: int x = 5; int y = 8;
печать x | y
(побитовое ИЛИ) будет рассчитывать это: 00 0101
(5)| 1000
(8)-----------= 1011
(11)Это означает, что будет напечатано 11
.