Advertencia de Findbugs: cambio de número entero por 32 - ¿qué significa?
Estaba escaneando un código fuente de un tercero usando Findbugs (solo para ser cauteloso antes de integrarme en el mío), y encontré la siguiente advertencia:
<code>long a = b << 32 | c </code>
Error: desplazamiento de entero por 32 Id. De patrón: ICAST_BAD_SHIFT_AMOUNT, tipo: BSHIFT, categoría: CORRECTNESS
El código realiza un desplazamiento entero por una cantidad constante fuera del rango 0..31. El efecto de esto es usar los 5 bits más bajos del valor entero para decidir cuánto desplazar. Probablemente esto no era lo que se esperaba, y al menos es confuso.
¿Podría alguien explicar qué significa exactamente lo anterior?
¡Gracias! (Soy bastante novato en la programación de Java)