我正在使用 Findbugs 扫描第三方源代码(只是在集成到我的之前要小心),并发现以下警告:
long a = b << 32 | c
错误:整数移位 32 模式 id:ICAST_BAD_SHIFT_AMOUNT,类型:BSHIFT,类别:CORRECTNESS
该代码在 0..31 范围之外执行一个常数值的整数移位。这样做的效果是使用整数值的低 5 位来决定要移动多少。这可能不是预期的,而且至少令人困惑。
任何人都可以解释一下上面的确切含义吗?
谢谢!(我是Java编程的新手)