Heim > Web-Frontend > js-Tutorial > js Beispiel für die Bestimmung, ob eine Zahl eine n-te Potenz von 2 ist

js Beispiel für die Bestimmung, ob eine Zahl eine n-te Potenz von 2 ist

小云云
Freigeben: 2017-12-07 16:00:49
Original
2394 Leute haben es durchsucht

Methode 1

Wie kann man feststellen, ob eine Zahl die n-te Potenz von 2 ist? Der einfache Weg, dies zu bestimmen, besteht darin, die Zahl num direkt durch 2 zu dividieren. Wenn die Der Rest ist 0. Teilen Sie dann num/2 durch 2 und bestimmen Sie dann, ob der Rest 0 ist. Wenn ja, fahren Sie mit dem vorherigen Schritt fort, bis num=1 am Ende ist.

Zum Beispiel:

2 2%2=0 (2/2)=1 Es ist

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

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

7 7%2= 1 Nein

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

Code-Implementierung:


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

  }
  return true;
 }else{
  return true;
 }
}
Nach dem Login kopieren


Das Ergebnis ist wie folgt:

Methode 2

Mit der binären Methode können Sie ermitteln, ob eine Zahl num ist die n-te Potenz von 2. Man kann die Regel sehen, dass, solange es sich um eine Potenz von 2 handelt, das höchste Bit 1 sein muss und der Rest 0 sein muss. Bei num-1 ist das höchste Bit 0 und der Rest ist 1.

Bitweise UND-Verknüpfung: 1&1 =1 0&1=0 0&0=0 1&0=0

2                                                                                                                         ---> 110

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

Beispiel: Binär von

8 1000 8-1 in Binär 0111 Bitweise UND-Verknüpfung 1000&0111 --> die n-te Potenz.

9er binär 1001 9-1er binär 1000 Bitweise UND-Verknüpfung 1001&1000 ---> 9 ist also keine Potenz von 2.

Die Binärzahl von 24 11000 24-1 Die Binärzahl 10111 Bitweise UND-Verknüpfung 11000&10111 ---> 10000 24 ist also keine Zweierpotenz.

Die Binärdatei von num kann über num.toString(2) geschrieben werden.

Code-Implementierung:


function check(num){
 return (num > 0) && ((num & (num - 1)) == 0);
}
Nach dem Login kopieren


Die Ergebnisse sind wie folgt:

Die andere 1 ist ebenfalls 2 hoch 0.

Es gibt andere Bedingungen, die nicht ausgeschrieben werden. Bei dieser Methode wird nicht ausgeschrieben, ob die Zahl eine ganze Zahl ist. Fügen Sie nach Möglichkeit eine bedingte Beurteilung hinzu.

Verwandte Empfehlungen:

Wie JS den Greedy-Algorithmus verwendet, um das Änderungsproblem zu lösen

Beispiel für eine JS-Abkürzungsmethode, um festzustellen, ob es sich um eine handelt leere Zeichenfolge Ausführliche Erklärung

PHP und JS bestimmen, ob eine Zeichenfolge eine Zahl ist

Das obige ist der detaillierte Inhalt vonjs Beispiel für die Bestimmung, ob eine Zahl eine n-te Potenz von 2 ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage