判断一个数是否为2的次方数

news/2024/11/17 0:43:16/
   如果采用循环去遍历2的次方数,来判断时,当这个数特别大,时间复杂度为O(n);

所以采用别的方法,2的次方数其二进制表示最高位肯定为1,其余为0。
例如:8 二进制位 1000,64 二进制位 1000000。将这个二进制-1,然后和其原来的数&运算,如果是
而的次方数,其结果应该为0,否则不是2的次方数。
代码如下 :
private static boolean isTwoPore(int n){
if(n==0){
return false;
}
if((n&n-1)==0){
return true;
}else {
return false;
}
}


http://www.ppmy.cn/news/720582.html

相关文章

大数值:bigInteger---2^64次方

问: 如果基本的整数和浮点数精度不能够满足需求,可以使用java.math包中的两个类:BigInteger和BigDecimal BigInteger inBigInteger.valueOf(2); 或者 BigInteger innew BigInteger("2"); 将in变量的值设为2 然后再计算2^64 i…

学生计算机2的4次方,学生专用计算器怎么开N次方

在任意幂数键的上方有一个开任意次方键,可以给任何一个数开任意次方,用法是先输入要开的次方数,然后按下计算器上的shift键,再按下任意幂数键,最后输入被开方数。 扩展资料 开方(英文rooting),指求一个数的…

java判断2的n次方_判断一个正整数是否是2的N次方的简洁算法及其证明

在写代码时遇到了“判断一个正整数是否是2的N次方”的问题,不想调用 java.lang 的 Math 类库进行浮点运算,觉得转换为浮点不是个好办法。 遂在网上搜索了一下,发现有人列出来好几种写法,列举几种: 1、通过循环除2&…

c语言2的n次方编程利用数组,1.6编程基础之一维数组_12计算2的N次方

1.6编程基础之一维数组_12计算2的N次方 总时间限制: 1000ms 内存限制: 65536kB 描述 任意给定一个正整数N(N<100)&#xff0c;计算2的n次方的值。 输入 输入一个正整数N。 输出 输出2的N次方的值。 样例输入 5 样例输出 32 提示 高精度计算 # include using namespace std; …

怎么用c语言编写2的n次方,2的n次方用C语言怎么编写程序

#include double f(double x,int n); main() { double x; int n; printf("please input x & n:"); scanf("%lf,%d",&x,&n); if(x0) { if(n>0) printf("\n\n0.000000...... 已知28的n次方16的n次方2的22次方&#xff0c;求n的值 28的n次…

c语言2的63次方怎么编译,C语言求等比数列2的0次方,2的1次方,2的2次方,...,2的63次方前64项的和....

优质解答 给你提供三种方法,你自己根据其优劣进行选择. #include #define N 64 /*方法一*/ unsigned _int64 fun_1( ) { unsigned _int64 sum 0,item 1; int i; for(i 0; i < N; i) { sum item; item * 2; } return sum; } /*方法二*/ unsigned _int64 fun_2( ) { unsig…

2的64次方输出C语言,c语言中2的32次方是什么数据类型?

是整形。一般占4个字节(32位)&#xff0c;最高位代表符号&#xff0c;0表示正数&#xff0c;1表示负在内存中的存储顺序是地位在前、高位在后&#xff0c;例如0x12345678在内存中的存储如下&#xff1a; 地址&#xff1a;0x0012ff78 0x0012ff79 0x0012ff7a 0x0012ff7b 数据&…

2的20次方怎么用计算机计算,2的20次方(2的20次方简便方法)

请详细说明,谢谢 2的10次方=1024 所以2的20次方等于1024*1024=1048576 4个字节能表示的最大整数是2^31-1.在上述中2^31-1表式2的31次方减1.字节(Byte)是计算机信息技术用于计量存储容量和传输容量的一种计量单位,1个字节等于8位二. 2^20=4^10=16^5=256*256*16=1048576 2的20次…