package java程序员面试笔试宝典;
public class 题8_4_2判断一个数是不是2的n次方 {
public static void main(String[] args) {
for (int i = 0; i < 10000; i++) {
if(isPower2N1(i)){
System.out.print(i+" ");
}
}
}
public static boolean isPower2N1(int n){
if(n<=0){
return false;
}
return (n&(n-1))==0;
}
public static boolean isPower2N0(int n){
String str=Integer.toBinaryString(n);
StringBuffer sb=new StringBuffer(str);
if(sb.charAt(0)!='1'){
return false;
}
for (int i = 1; i < str.length(); i++) {
if(sb.charAt(i)!='0'){
return false;
}
}
return true;
}
public static boolean isPower2N(int n){
if(n<1){
return false;
}
while(n>1){
if(n%2==0){
n=n>>1;
}else {
return false;
}
}
return true;
}
}