8,64,256都是2的阶次方数(例8是2的3次方),用java编写程序,用两种方法来判断一个整数是不是2的阶次方数,并说明哪个方法更好。
查看复制到剪切板打印
这句代码可以实现这个功能
如果是2的阶次方数!那么他一定是 2的二进制位 左移得到的!!
如果是2的阶次方数的话 二进制一定是这样的
1000000000
那么他的n-1 则是0111111111
然后进行与运算!如果是0则可以得出 是2的阶次方数!
类似的自己实现了 一个
找两个数最大的数!!
查看复制到剪切板打印
return n==0 ? false : ((n-1)&n)==0;
这句代码可以实现这个功能
如果是2的阶次方数!那么他一定是 2的二进制位 左移得到的!!
如果是2的阶次方数的话 二进制一定是这样的
1000000000
那么他的n-1 则是0111111111
然后进行与运算!如果是0则可以得出 是2的阶次方数!
类似的自己实现了 一个
public class TwoToMax {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(getMax(3,4));
}
public static int getMax(int m,int n)
{
return (m-n)>>>31>0?n:m;
}
}
找两个数最大的数!!