给出一行C语言表达式,判断给定的整数是不是是一个2的幂
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给出一行C语言表达式,判断给定的整数是不是是一个2的幂相关的知识,希望对你有一定的参考价值。
下面是一个判断给定整数是否是2的幂的C语言代码。int is_power_of_two(int n)
return ((n != 0) && !(n & (n - 1)));
上述代码使用位运算的方法判断给定整数n是否是2的幂。具体来说,如果n是2的幂,则n二进制中只有一个1,如4(100),8(1000),16(10000)等。因此,将 n&(n-1) 的结果取反后,应该得到0。如果n!=0,则n是2的幂函数。 参考技术A 一个数n
若(n&(n-1))==0则n是2的幂追问
为什么啊
本回答被提问者采纳 参考技术B #include<stdio.h>int fun(int num)
if(num==1)
return 1;
if(num%2==0)
fun(num/2);
else
return 0;
int main()
int num;
printf("请输入任意整数:\n");
scanf("%d",&num);
if(fun(num)==1)
printf("%d是2的幂!\n",num);
else
printf("%d不是2的幂!\n",num);
参考技术C 思路就是这个整数N求2的底数M,再把M以2求幂与N相比。相等就是,不相等就不是
if(N==pow(2,log(N)/log(2)))
以上是关于给出一行C语言表达式,判断给定的整数是不是是一个2的幂的主要内容,如果未能解决你的问题,请参考以下文章
C语言编程:给定N(2<=N<=100)个不同的正整数,输出其中最大的2个数。 求给出具体的程序