Check if number is already power of two

This commit is contained in:
Indre Maksimovaite
2021-10-11 20:24:38 +03:00
parent 372348f64c
commit d6364548aa
2 changed files with 6 additions and 3 deletions

View File

@ -2,10 +2,13 @@
* *
* This script will find next power of two * This script will find next power of two
* of given number. * of given number.
* More about it:
* https://www.techiedelight.com/round-next-highest-power-2/
* *
*/ */
export const nextPowerOfTwo = (n) => { export const nextPowerOfTwo = (n) => {
if (n > 0 && (n & (n - 1)) === 0) return n
let result = 1 let result = 1
while (n > 0) { while (n > 0) {
result = result << 1 result = result << 1

View File

@ -4,12 +4,12 @@ describe('NextPowerOfTwo', () => {
it.each` it.each`
input | result input | result
${0} | ${1} ${0} | ${1}
${1} | ${2} ${1} | ${1}
${2} | ${4} ${2} | ${2}
${3} | ${4} ${3} | ${4}
${5} | ${8} ${5} | ${8}
${125} | ${128} ${125} | ${128}
${1024} | ${2048} ${1024} | ${1024}
${10000} | ${16384} ${10000} | ${16384}
`('returns $result when is given $input', ({ input, result }) => { `('returns $result when is given $input', ({ input, result }) => {
const res = nextPowerOfTwo(input) const res = nextPowerOfTwo(input)