Ostrzeżenie Findbugs: zmiana liczby całkowitej o 32 - co to znaczy?

Skanowałem kod źródłowy strony trzeciej za pomocą Findbugs (aby zachować ostrożność przed włączeniem do mojego) i znalazłem następujące ostrzeżenie:

<code>long a = b << 32 | c
</code>

Błąd: Przesunięcie liczby całkowitej o 32 Identyfikator wzoru: ICAST_BAD_SHIFT_AMOUNT, typ: BSHIFT, kategoria: POPRAWNOŚĆ

Kod wykonuje całkowite przesunięcie o stałą wartość spoza zakresu 0..31. Efektem tego jest użycie niższych 5 bitów wartości całkowitej, aby zdecydować, o ile przesunąć. Prawdopodobnie nie jest to oczekiwane, a co najmniej mylące.

Czy ktoś mógłby wyjaśnić, co dokładnie oznacza powyższe?

Dzięki! (Jestem całkiem początkującym w programowaniu Java)

questionAnswers(2)

yourAnswerToTheQuestion