如何用java语言写一个查找2的N次方的数?急!急!急!

如何用java语言写一个查找2的N次方的数?
2025-04-07 07:14:09
推荐回答(4个)
回答1:

public class StrTest {

public static void main(String[] args) {
double a = 128;
System.out.println(search(a));

}

public static double search(double a){
if(a<=1){
return 0;
}else{
double i = 1;
double j = 2;
while (j j=j*2;
i++;
}
return i;
}

}

}

回答2:

int num = 128;
int tmp;
int i = -1;
if(num < 0)
{
return;
}
else
{
System.out.print(num);
do
{
if(num % 2 == 0)
{
tmp = num /2;
num = tmp;
i++;
}
else
{
break;
}
} while(num > 0);
if(i == -1)
{
System.out.println("不是2的N次方!");
}
else
{
System.out.println("是2的" + i + "次方!");
}
}

回答3:

import java.math.BigDecimal;

public class Test3 {

public static void main(String[] args) {
System.out.println(new Test3().searchPowerOfTwo(32));
System.out.println(new Test3().searchPowerOfTwo(-32));
}

public BigDecimal searchPowerOfTwo(int power)
{
if (power >= 0)
{
if (power < 31)
{
return new BigDecimal(1 << power);
}
return new BigDecimal(1 << 30).multiply(searchPowerOfTwo(power - 30));
}
if (power > -31)
{
return new BigDecimal(-1 << Math.abs(power));
}
return new BigDecimal(1 << 30).multiply(searchPowerOfTwo(power + 30));
}
}

回答4:

Math.pow(double m, double n)
是求m的n次方的
ps:当然了,你也可以用循环实现^_^