Aviso do Findbugs: Integer shift by 32 - o que isso significa?
Eu estava digitalizando um código-fonte de terceiros usando o Findbugs (apenas para ser cauteloso antes de integrá-lo ao meu) e encontrei o seguinte aviso:
<code>long a = b << 32 | c </code>
Bug: Integer shift de 32 Pattern id: ICAST_BAD_SHIFT_AMOUNT, digite: BSHIFT, category: CORRECTNESS
O código executa um deslocamento inteiro por um valor constante fora do intervalo 0..31. O efeito disso é usar os 5 bits mais baixos do valor inteiro para decidir por quanto mudar. Isso provavelmente não é esperado, e pelo menos confuso.
Alguém poderia por favor explicar o que exatamente isso significa?
Obrigado! (Eu sou um novato em programação Java)