W Javie już programuję od ponad roku i zdarzyło mi się używać operatora | (w C++ zresztą też się go używa). Nigdy jednak nie wiedziałem jak to działa, więc pytam teraz? Jak wygląda od środka taka metoda, która przyjmuje jako parametr stałe połaczone tym operatorem?
0
0
To operator bitowej alternatywy, czyli bitowe 'lub'.
0
Ale jak tego używać we własnej metodzie?
0
Może najpierw zacznij od pytania co chcesz osiągnąć? :>
0
Wywołuje metodę:
someMethod(LEFT | RIGHT | HELLO);
i jak w środku tej metody wydobyć te stałe? Jak powinien wyglądać kod tej metody?
0
Przykladowo:
public final int LEFT = 1;
public final int RIGHT = 2;
public final int HELLO = 4; //kolejne potegi 2
public void method()
{
someMethod(RIGHT | HELLO); //przekazywany wynik to 5, bo suma bitowa 1 i 4 to 5 wlasnie (ustawione bity 1 i 3)
}
public void someMethod(int flags)
{
if(flags & LEFT > 0) // iloczyn bitowy flag i liczby z ustawionym bitem 1 - czyli jezeli czesc wspolna jest wieksza od 0 to bit 1 jest ustawiony
setLeft();
if(flags & RIGHT > 0)
setRight();
if(flags & HELLO > 0)
setHello();
}
Zauwaz, ze wszedzie sa operatory bitowe.