Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我曾经遇到过一种通过执行以下操作来确定数字 x 是否为 2 的幂的方法:
X&(x-1) 后跟 0 测试,如果结果为 0,则表示该数字中只有一个 1 位,并且是 2 的幂。但问题是它不能用于有符号诠释?我只是想知道有符号整数的唯一例外是它可能是唯一的有符号位,如果是这种情况,我可以简单地添加另一个测试并完成它。或者它是否有其他例外情况,该方法可能不适用于带符号的 int。因为我真的想在 java 中使用它,我希望我能以某种增强的方式采用它。非常感谢。
没关系; 只是测试阴性。正数的幂永远不会是负数,因此您可以肯定地说,任何给定的负数都不是 2 的幂。