如何判断一个数是不是是2的N次方
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何判断一个数是不是是2的N次方相关的知识,希望对你有一定的参考价值。
#include //取反加1后与原数相与还是等于原来的那个数就说明是2的n次幂#define S(n) ( ((n & ((~n) + 1))) ==n)int main()int i;while (1)scanf("%d",&i);//改成 &if(S(i))printf("%d,Y\\n",i);elseprintf("%d,N\\n",i);return 0;。 参考技术A while (i)if (2 == i)
printf("YES: %d\n",count);
break;
if (0 == i%2)
i /= 2;
count++;
else
printf("NO\n");
break;
如何判断一个数是不是是2的n次方
参考技术A 参考:http://bbs.csdn.net/topics/370058619如题,如何判断一个整数是否是2的N次方,我能想到的方法有两个
1.一直除2,看最后是否等于1.(最笨的方法)
2.转换成2进制,看是否是这个样子的:1,10,100,1000,10000,就是除了最高位是1,其他都是0,或者说只有一个1.
以上是关于如何判断一个数是不是是2的N次方的主要内容,如果未能解决你的问题,请参考以下文章