How to check if number is power of two

In this tutorial, we will see how to check if number is power of two.
There are many approaches to check if number is power of two or not.

Approach 1:

It is very easy and straight forward approach.

  • Run a while loop which checks for condition if n is even number (n%2==0).
  • If n is even then divide it by 2 in each iteration.
  • When you get out of while loop and n is equal to 1 then number is power of two,
  • If number is not equal to 1 then number is not power of two.

Approach 2:

We can use bitwise and operator to check if number is power of two or not.

It will a very simple way to check if number is power of two. Let’s see how it works.
Let’s say n is 8. Its binary representation will be : 1000.
binary represetation of 7 will be : 0111.
1 0 0 0
& 0 1 1 1
———-
0 0 0 0
———-
If number is power of 2, then it will have only one bit set to “1”.
For example:
8 :   1000
32 : 100000

Similarly when you  check binary form of 7 and 31, it will have all the bits set to “1”
7 :   111
31:  11111
so if you apply bitwise & operator on n and n-1 and result is 0. It means number is power of two.

Java program to check if number is power of two:

When you run above code, you will get below results

Add Comment