# Check if a Number is a Power of 2

View: 592    Dowload: 0   Comment: 0   Post by: hanhga   Category: Php&mySql   Fields: Other

How to check if a number is a power of 2.  To understand this question, let’s take some example.

Example –

Input – 16   – 16 is a power of 2 (2^4).

Input – 15 – 15 is not a power of 2.

Input – 32- 32 is a power of 2 (2^5).

We can use multiple approaches to check whether a number is a power of 2 or not.

## How to Check if a Number is a Power of 2

Method 1 : Check whether a number is perfectly divisible by 2.

In this approach, We’ll check whether a number is perfectly divisible by 2. If a number is perfectly divisible by 2 then it’s remainder is 0.

We’ll repeat this step until n becomes 1. In each step, we check if n%2 becomes non-zero and n is not 1 then n is not a power of 2. If n becomes 1 then it is a power of 2.

Method 2 : Bit Manipulation

Let’s consider the binary representation of any number that is a power of 2. We’ll find only one bit is set in their binary representation.

```2    =  00000010
4    =  00000100
8    =  00001000
16   =  00010000 ```

And number which is one less has following binary representation

```1 = 00000001
3 = 00000011
7 = 00000111```
```   0 0 0 0 0 0 1 0  (Binary representation of 2)
&  0 0 0 0 0 0 0 1  (Binary representation of 1)
-------------------
0 0 0 0 0 0 0 0```

We have discussed two approaches to check whether a number is a power of 2 or not. Let’s implement both the approaches in multiple programming languages.

## C Code to Check whether a Number is a Power of 2

METHOD 1: Check if a number is perfectly divisible by 2

```#include <stdio.h>
int main(void) {

int num, flag = 1;
printf("Enter a number \n");
scanf("%d", &num);

while(num > 1) {

if(num % 2 != 0){
flag = 0;
break;
}

num = num / 2;
}

if(flag) {
printf("Input number is a power of 2");
} else {
printf("Input number is not a power of 2");
}

return 0;
}```

METHOD 2 – Bit Manipulation

```#include <stdio.h>

int isPowerOfTwo(int num) {
return num && !(num & (num-1));
}
int main(void) {
int num;

printf("Enter a number\n");
scanf("%d", &num);

if(isPowerOfTwo(num)) {
printf("Input number is a power of 2");
} else {
printf("Input number is not a power of 2");
}

return 0;
}```

## Java Code to Check if a Number is a Power of 2

METHOD 1: Check if a number is perfectly divisible by 2

```import java.util.*;

public class PowerofTwo {

public static void main(String[] args) {

int num, flag = 1;

System.out.println("Enter a number");
Scanner in = new Scanner(System.in);

num = in.nextInt();

while(num > 1) {

if( num % 2 != 0) {
flag = 0;
break;
}

num = num/2;
}

if(flag == 1)
System.out.println("Input number is a power of 2");
else
System.out.println("Input number is not a power of 2");
}

}```

METHOD 2 – Bit Manipulation

```import java.util.*;

public class PowerofTwo {

public static boolean isPowerOfTwo(int num) {

return (num > 0) && ((num & (num - 1)) == 0);
}

public static void main(String[] args) {

int num;

System.out.println("Enter a number");
Scanner in = new Scanner(System.in);

num = in.nextInt();

if(isPowerOfTwo(num))
System.out.println("Input number is a power of 2");
else
System.out.println("Input number is not a power of 2");
}

}``` How to check if a number is a power of 2. To understand this question, let’s take some example.

Posted on 12-10-2016

#### Comment:

To comment you must be logged in members.

## Files with category

File suggestion for you
• Php&mySql - 2852 view This Human Resource Management System PHP MySQL Source Codes is done using the programming language Asp.net and the data source SQL Server. This...

• WordPress template - 730 view SKT Magazine is a superfine free news- magazine WordPress theme ideal for online newspaper, publishing reviews, and editorial style websites. It is...

• Php&mySql - 468 view In part one, we covered the basics of Phake and demonstrated ways of executing tasks with it, covering groups, dependencies, and arguments. In this...

• Mobile applications - 5312 view We'll introduce a few concepts without going into too much detail. We'll look at: Basic file access, Clearing the screen, Drawing images, Using a...

• iPhone OS - 768 view In this tutorial, I am going to introduce you to tvOS development by creating a basic tvOS application.