Co właściwie robi operator |

0

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

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.

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