第一步判断是否为2的n次幂
private static Boolean IfSquare2(int num)
{
return ~(num-1)==-num;//(num&-num)==num;//(num&(num-1))==0
}
第二步计算n
private static int ChangePower(int num)
{
num = Math.Abs(num);
int n = 0;
while ((num >>= 1) != 0)
n++;
return n;
}
第三步调用Method方法即可
public static int Method(int num)
{
return IfSquare2(num) ? ChangePower(num) : -1;
}
该博客介绍了如何使用Java编写算法来判断一个整数是否为2的n次幂,并在确认后计算其对应的n值。通过`IfSquare2`方法利用位运算快速判断,然后`ChangePower`方法计算指数n。这些方法可以应用于位操作和数值计算相关的场景。
618

被折叠的 条评论
为什么被折叠?



