思路:将这个整数转化为二进制形式,然后减1,再与原来的二进制形式进行按位与,如果为0,则是2的整数次幂,如果为1,则不是。
// 2的次幂.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdio.h>
int isornot2(int a);
int main(int argc, char* argv[])
{
int a=15;
if(isornot2(a))
printf("%d是2的整数次幂!\n",a);
else
printf("%d不是2的整数次幂\n", a);
return 0;
}
int isornot2(int a)
{
return ((a-1)&a)==0? 1:0;
}