JavaScript - was macht "(x0 & x1)"?

... komplette Frage anzeigen

2 Antworten

x0 & x1 filtert gleiche Bits aus den Zahlen.

100 = 64 + 32 + 4
200 = 128 + 64 + 8

Somit ist x0 & x1 = 64. Es bleibt die Frage offen, wie Java diese Zahl als Wahrheitswert interpretiert.

Laut http://stackoverflow.com/questions/2015071/why-boolean-in-java-takes-only-true-or-false-why-not-1-or-0-also schafft Java eine Konvertierung einer Zahl in einen boolschen Typ nicht.

Du müsstest also so etwas probieren:

var stepX = (x0 & x1) > 0 ? 1 : -1;

Bei JavaScript ist dieser >-Vergleich evtl. nicht notwendig.

Antwort bewerten Vielen Dank für Deine Bewertung

das "&" ist ein bitwise AND operator (kein logisches AND wie "&&"), das nimmt zwei zahlen, wandelt es ins binärformat um  und das ergebnis daraus ist dann >= 0 (s. Link), ... das "? 1 : 1" ist nur ne kurzform für if/else (ternary operator)

den & operator sollte eigtl auch Java kennen/können

en.wikipedia.org/wiki/Bitwise_operation#AND

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?