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)

questionAnswers(2)

yourAnswerToTheQuestion