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)