znak | i zmienne statyczne

0

Witam , chciałbym się dowiedzieć lub dostać jakiś link do tekstu aby dowiedzieć się jakie działanie ma znak |. Konkretnie chodzi mi o cos takiego:

NazwaKlasy.RIGHT | NazwaKlasy.DOWN

gdzie RIGHT i DOWN to statyczne inty.

Wynik to suma tych dwoch wartosci ale na jakiej podstawie ?

0

Suma bitowa - operator LUB (OR).

0

Jest to bitowy OR:
http://en.wikipedia.org/wiki/Bitwise_operation#OR
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html

U siebie masz przykład wykorzystania tego do ustawiania flag bitowych.
Jeśli np. RIGHT = 1, DOWN = 2, to RIGHT | DOWN = 3.
Potem można łatwo sprawdzić, czy dany bit (dana flaga) został ustawiony:

if (wynik & NazwaKlasy.DOWN == NazwaKlasy.DOWN) { ... }

O ile bity stałych na siebie nie zachodzą (nie mają wspólnych bitów niezerowych), zamiast | można użyć +.

0

dzieki wielkie

1 użytkowników online, w tym zalogowanych: 0, gości: 1