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; } }
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 von8 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); }
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ösenBeispiel für eine JS-Abkürzungsmethode, um festzustellen, ob es sich um eine handelt leere Zeichenfolge Ausführliche ErklärungPHP und JS bestimmen, ob eine Zeichenfolge eine Zahl istDas 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!