返回顶部

收藏

java代码判断数字是否是2的n次方

更多

在一些软件场景中我们需要数字必须是2的n次方, java的Integer类提供了numberOfLeadingZeros可以帮我们判断一个数字是否是2的n次方。

如下代码片段:

    static boolean is2nPower(int x) {
        int bitLeft = Integer.numberOfLeadingZeros(x);
        int bitLength = 31 - bitLeft;
        int shouldBe = 1 << bitLength;
        return (shouldBe == x);
    }

此方法的性能很好, 判断所有正整数的时间为2s左右。

标签:java

收藏

0人收藏

支持

1

反对

0

发表评论