位置:首页 » 文章/教程分享 » java代码判断数字是否是2的n次方
在一些软件场景中我们需要数字必须是2的n次方, java的Integer类提供了numberOfLeadingZeros可以帮我们判断一个数字是否是2的n次方。此方法的性能很好, 判断所有正整数的时间为2s左右。

如下代码片段:
static boolean is2nPower(int x) {
    int bitLeft = Integer.numberOfLeadingZeros(x);
    int bitLength = 31 - bitLeft;
    int shouldBe = 1 << bitLength;
    return (shouldBe == x);
}