思路:
采用位运算
1.首先我们需要用Scanner键盘输入一个数,输入的数用二进制表示,若只有一个1,其余位全部为0,则是2的整数次幂,反之则不是。
2.这里需要采用&运算(如果有一个为0则结果为0)。如果该数是2的整数次幂,那么该数转化为二进制之后-1,两数再进行与运算,如果最后结果为0,则该数为2的整数次幂,反之则不是。
package Lq_project;
import java.util.Scanner;
public class Weiyunsuanfu {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.print("请输入一个数");
int num=scanner.nextInt();
//采用位运算符
if((int)(num&(num-1))==0) {
System.out.print("你输入的数字是2的整数次幂");
}else {
System.out.print("你输入的数字不是2的整数次幂");
}
}
private static int nextInt() {
// TODO Auto-generated method stub
return 0;
}
}
运行结果: