Home >Web Front-end >JS Tutorial >js example of determining whether a number is an nth power of 2

js example of determining whether a number is an nth power of 2

小云云
小云云Original
2017-12-07 16:00:492391browse

Method 1

How to determine whether a number is 2 raised to the nth power? The simple way to determine is to directly divide the number num by 2. If the remainder is 0, Then divide num/2 by 2, and then determine whether the remainder is 0. If so, continue with the previous step until num=1 in the end.

For example:

2 2%2=0 (2/2)=1 is

4 4%2=0 (4/2 )%2=0 (4/2/2)=1 Yes

6 6%2=0 (6/2)%2=1 No

7 7%2=1 No

24 24%2=0 (24/2)%2=0 (24/2/2)%2=0 (24/2/2/2)%2=1 Not

Code implementation:


function check(num){
 if(num != 1){
  while(num != 1){
   if(num%2 == 0){
    num = num / 2;
   }else{
    return false;
   }

  }
  return true;
 }else{
  return true;
 }
}


##The results are as follows:

Method 2

Using the binary method, you can determine whether a number num is the nth power of 2. The rules can be known , as long as it is a power of 2, the highest bit must be 1 and the rest are 0. When num-1, the highest bit is 0 and the rest are 1.

Bitwise AND operation: 1&1=1 0&1=0 0&0=0 1&0=0

2                                                                          6 ---> 110

8 ---> 1000 7 ---> 111

Example:

#8 Binary 1000 8-1 Binary 0111 Press Bitwise AND operation 1000&0111 --> 0000 So 8 is 2 raised to the nth power.

9 The binary system 1001 The binary system 1000 of 9-1 Bitwise AND operation 1001&1000 ---> 1000 So 9 is not a power of 2.

24’s binary 11000 24-1’s binary 10111 Bitwise AND operation 11000&10111 ---> 10000 So 24 is not a power of 2.

You can write the binary number of num through num.toString(2).

Code implementation:

##

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


The results are as follows:


The other 1 is also the 0th power of 2.

There are other conditions not written out. This method is to judge whether a number is the nth power of 2. It does not write out whether the number is an integer. If possible, add conditional judgment by yourself.

Related recommendations:

How to use greedy algorithm to solve the change problem in JS

JS abbreviation method example to determine whether it is an empty string Detailed explanation

PHP and JS determine whether a string is a number

The above is the detailed content of js example of determining whether a number is an nth power of 2. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn