本文共 794 字,大约阅读时间需要 2 分钟。
要判断一个整数是否是2的幂次方,可以使用位运算来检查其二进制表示是否只有一个1。以下是详细的解决方案:
2的幂次方的二进制表示只有一个1。例如:
我们可以通过以下步骤来检查一个数是否是2的幂次方:
public boolean checkPowerOf2(int n) { if (n <= 0) { return false; } int count = 0; int oneFound = false; while (n != 0) { int remainder = n % 2; if (remainder == 1) { oneFound = true; count = 1; } else { count++; } n = n / 2; } return oneFound;}
count
用于统计1的数量,oneFound
用于标记是否找到了1。oneFound
为true,count
重置为1。count
加1。这个方法的时间复杂度为O(1),因为无论n有多大,位数最多为32位(对于int型),遍历次数固定。
转载地址:http://fywfk.baihongyu.com/