Почему выражение n&1 == 0
всегда возвращает false
, где n
является целым числом?Почему «n & 1 == 0» всегда возвращает false?
Я хочу использовать побитовое управление для определения того, является ли n
равномерным. Однако он всегда возвращает false. (Клион также подсказал мне, что он всегда возвращает false
).
Более того, он работает, когда я использую n&1 != 0
, чтобы определить, является ли n
нечетным.
http://en.cppreference.com/w/cpp/language/operator_precedence –
Если '(n & 1) == false', то это четное число и нечетное значение в противном случае. В g ++ скомпилируйте с опцией '-Wall', чтобы он дал вам предупреждение для' n & 1 == 0' для размещения скобок. – iammilind
, как у вас есть это выглядит как 'n & (1 == 0)' так что '1 == 0' всегда 0, мы получаем' n & 0', который всегда 0 – JackVanier