Perché l'espressione n&1 == 0
restituisce sempre false
, dove n
è un numero intero?Perché "n & 1 == 0" restituisce sempre false?
Desidero utilizzare il funzionamento bit a bit per determinare se n
è pari. Tuttavia, restituisce sempre false. (Il clion mi ha anche indotto a restituire sempre false
).
Inoltre, funziona quando utilizzo n&1 != 0
per determinare se n
è dispari.
http://en.cppreference.com/w/cpp/language/operator_precedence –
Se '(n & 1) == false', allora è pari numero e dispari altrimenti. In g ++, compila con l'opzione '-Wall' in modo che ti fornisca un avvertimento per' n & 1 == 0' per mettere le parentesi intorno. – iammilind
il modo in cui hai sembra 'n & (1 == 0)' quindi dato che '1 == 0' è sempre 0 otteniamo' n & 0' che è sempre 0 – JackVanier