Warum gibt der Ausdruck n&1 == 0
immer false
zurück, wobei n
eine ganze Zahl ist?
Ich möchte die bitweise Operation verwenden, um zu bestimmen, ob n
gerade ist. Es gibt jedoch immer falsch zurück. (Der Clion hat mich auch darauf hingewiesen, dass immer false
zurückgegeben wird.)
Außerdem funktioniert es, wenn ich n&1 != 0
verwende, um zu bestimmen, ob n
ungerade ist.
Es ist wegen der Vorrangstellung des Bedieners.
==
hat eine höhere Priorität als der Operator &
, daher wird 1 == 0
zuerst auf 0 ausgewertet. Dann wird das bitweise UND ausgeführt, das letztendlich false zurückgibt.