# JavaScript - Next power of two of a given number

## JavaScript Bit Manipulation: Exercise-4 with Solution

Write a JavaScript program to find the next power of two of a given number.

A power of two is a number of the form 2n where n is an integer, that is, the result of exponentiation with number two as the base and integer n as the exponent.

The first ten powers of 2 for non-negative values of n are: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, ...

**Test Data:**

(1) -> 1

(4) -> 4

(9) -> 16

("15") -> "It must be number!"

**Sample Solution: **

**JavaScript Code:**

```
// Define a function to find the next power of two greater than the given number
const next_Power_Of_Two = (num) => {
// Check if the input is not a number
if (typeof num != "number") {
return 'It must be number!' // Return an error message
}
// Check if the number is already a power of two
if (num > 0 && (num & (num - 1)) === 0)
return num // Return the number itself if it is a power of two
let result = 1 // Initialize the result as 1, which is the smallest power of two
// Loop until the number becomes 0
while (num > 0)
{
result = result << 1 // Multiply the result by 2 by left shifting the bits
num = num >> 1 // Divide the number by 2 by right shifting the bits
}
return result // Return the next power of two
}
console.log(next_Power_Of_Two(1)) // Test the function with the number 1
console.log(next_Power_Of_Two(4)) // Test the function with the number 4
console.log(next_Power_Of_Two(9)) // Test the function with the number 9
console.log(next_Power_Of_Two("15")) // Test the function with the string "15"
```

Output:

1 4 16 It must be number!

**Flowchart: **

**Live Demo: **

See the Pen javascript-bit-manipulation-exercise-4 by w3resource (@w3resource) on CodePen.

* To run the code mouse over on Result panel and click on 'RERUN' button.*

**Improve this sample solution and post your code through Disqus.**

**Previous:** Number of 0 bits in a binary representation.

**Next:** Odd or even number using bit manipulation.

**What is the difficulty level of this exercise?**

Test your Programming skills with w3resource's quiz.

**Weekly Trends and Language Statistics**- Weekly Trends and Language Statistics