- First one:移位操作符来替代乘法操作,从而提高效率
public class Muti {
public static int powerN(int m, int n) {
for (int i = 0; i < n; i++) {
m = m << 1;
}
return 0;
}
/**
* 移位操作符来替代乘法操作,从而提高效率
*
*/
public static void main(String[] args) {
System.out.println("3乘以8的 = " + powerN(3, 3));
System.out.println("3乘以16的 = " + powerN(3, 4));
}
}
public class Test1 {
public static boolean isPower(int n){
if(n<1){
return false;
}
int i =1;
while(i<=n){
if(i==n){
return true;
}
i<<=1;
}
return true;
}
/**
* 判断一个数是否为2的N次方
*/
public static void main(String[] args) {
System.out.println(isPower(4));
System.out.println(isPower(2048));
}
}
public class Test2 {
public static int countOne(int n) {
int count = 0;
while (n > 0) {
if ((n & 1) == 1)
{
count++;
}
n >>= 1;
}
return count;
}
/**
* 求二进制中1的个数
*/
public static void main(String[] args) {
System.out.println(countOne(7));
System.out.println(countOne(8));
}
}