operacje na bitach.

0

Witam

Mam takie pytanie, oto przykładowy kod:

jeden = 1;
int costam = jeden >>>1;

czy da się w jakiś sposób wyłapać tą 1 która wypadnie z jeden po przesunięciu ? Bo mnie bardziej interesuje nie to co zostanie w zmiennej a to co z niej "wyrzucam" :| Czy Java umożliwia taką operację ?

0

Nie da się. Jeśli interesuje cię ileśtam dolnych bitów (czyli te, które wyrzucasz), to możesz zrobić:

int ile = 1; //ile wyrzucamy, większe od zera
int x = 69;
int wyrzucone = x & ((1 << ile) - 1); //x & ((2 do potęgi ile) - 1)
int costam = x >>> ile;

Po tym wyrzucone zawiera liczbę utworzoną z wyrzuconych bitów.
Nie mam pewności czy działa, pisane z głowy...

0

Dzięki za szybką odpowiedz, zatem trza się bawić maskami, ehh :-/

0

Czemu "ech"? Maski, to najszybsze sposoby do dotarcia do konkretnych bitów. Możesz też użyć klasy BitSet, EnumSet lub funkcji bibliotecznych javy, które uzupełniają operacje na bitach o obroty i wycinanki np. półbajtów. Wybór jest bardzo szeroki.

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