算法分析:将这个数减1与这个数按位与
例如:8-1 = 7
8 :1000, 7:111
按位与为0,所以8是2的整数次方。
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
/**
* 判断一个整数是不是2的整数次方
*/
Scanner in = new Scanner(System.in);
int n = in.nextInt();
if((n&(n-1))==0){
System.out.println(n+"是2的整数次方。");
}else{
System.out.println(n+"不是2的整数次方。");
}
}
}
github地址:https://github.com/lcl0512/algorithm-in-java.