You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
875 B
C

/*
* C Program to Check if a given Integer is Power of 2 using Bitwise Operators
*/
#include <stdio.h>
#define NUM_BITS_INT (8*sizeof(int))
int power_of_2(unsigned int);
int main()
{
unsigned int num;
printf("\nEnter Number");
scanf("%d", &num);
power_of_2(num);
}
/*
* Finding the power of 2 using bit wise operators
*/
int power_of_2(unsigned int x)
{
int i, count = 0, result, shift_num;
for (i = 0; i <= NUM_BITS_INT; i++)
{
shift_num = x >> i;
result = shift_num & 1;
if (res == 1)
count++;
}
/*
*If number of bits set to 1 are odd then the number is power of 2
*If number of bits set to 0 are even then the number is not power of 2
*/
if (count % 2 == 1)
printf("YES");
else
printf("NO");
}