# 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.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

﻿