public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int value = 8; String valueString = Integer.toBinaryString(value); if(valueString.lastIndexOf('1')==0){ System.out.println(value+"是2的"+(valueString.length()-1)+"次方"); }
}}这个试试,转换成二进制串后,判断只有第一位是1
如果int i i&-i = i 那么i就是2的n次方public boolean isPowerOf2(int i){reurn i&-i==i; }
Scanner scan = new Scanner(System.in);
int value = scan.nextInt();
boolean flag = false;while(value != 0) {
if(value % 2 != 0) {
flag = true;
break;
}
value /= 2;
}if(flag == false) {
System.out.println("yes");
} else {
System.out.println("no");
}
public static void main(String[] args) {
boolean flag=true;
int i=89;
char[] str=Integer.toBinaryString(i).toCharArray();
System.out.println(str);
for (int j = 1; j <str.length; j++) {
if (str[j]=='1') {
flag=false;
break;
}
}
if (flag) {
System.out.println("yes");
}else {
System.out.println("no");
}
}
if(i%2=0){
System.out.print("是");
}
else{System.out.print("不是");
}
public class Test { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int value = 8;
String valueString = Integer.toBinaryString(value);
if(valueString.lastIndexOf('1')==0){
System.out.println(value+"是2的"+(valueString.length()-1)+"次方");
}
}}这个试试,转换成二进制串后,判断只有第一位是1
那么i就是2的n次方public boolean isPowerOf2(int i){reurn i&-i==i;
}
public void judgeN2(int n){
for(int i=0;i<=n;i++){
if(Math.pow(2, i)==n){
System.out.println("此数是2的n次方:");
break;
}
if(i==n){
System.out.println("此数不是是2的n次方:");
}
}
}
10楼的方法验证的是不是2的倍数,lz问的是“如何判断该数是不是2的n次方”。
if(!flag)就行了。i%2=0 应该是 i%2==0吧 写漏了一个"="
public static boolean method1(int num){
return Integer.toBinaryString(num).replaceAll("0", "").length() == 1;
}
int value = scan.nextInt();
boolean flag = false; while(value != 0) {
if(value % 2 != 0) {
flag = true;
break;
}
value /= 2;
} if(flag == false) {
System.out.println("yes");
} else {
System.out.println("no");
}
select (var)&(-var)=var;select 8&-8=8结果为1 是1就是偶数。不知道这样是否可行。
Scanner scan = new Scanner(System.in);
int value = scan.nextInt();
boolean flag = false; while(value != 0) { if(value % 2 != 0) {
flag = true;
break;
}
value /= 2;
} if(flag == false) {
System.out.println("yes");
} else {
System.out.println("no");
}