Warum gibt "n & 1 == 0" immer false zurück? [Duplikat]

8

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.

    
JunGor 16.04.2016, 02:49
quelle

1 Antwort

19

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.

    
QuikProBroNa 16.04.2016, 02:53
quelle

Tags und Links