1

我曾经遇到过一种通过执行以下操作来确定数字 x 是否为 2 的幂的方法:

X&(x-1) 后跟 0 测试,如果结果为 0,则表示该数字中只有一个 1 位,并且是 2 的幂。但问题是它不能用于有符号诠释?我只是想知道有符号整数的唯一例外是它可能是唯一的有符号位,如果是这种情况,我可以简单地添加另一个测试并完成它。或者它是否有其他例外情况,该方法可能不适用于带符号的 int。因为我真的想在 java 中使用它,我希望我能以某种增强的方式采用它。非常感谢。

4

1 回答 1

2

没关系; 只是测试阴性。正数的幂永远不会是负数,因此您可以肯定地说,任何给定的负数都不是 2 的幂。

于 2011-12-13T03:32:22.460 回答