Wenn negative Zahlen nicht berücksichtigt werden, können wir für diese Analyse erkennen, dass diese Zahl definitiv keine Ganzzahlleistung von 2 ist, wenn der Eingangswert unter 1 ist.
Wenn der Eingabewert größer als eins ist, können wir eine Regel finden. Die Ganzzahlkraft von 2 wird in binär ausgedrückt als:
2d = 10b; 4d = 100b; 8d = 1000b
Das erste Bit des Binärs ist eins und der Rest ist Null.
Daher können wir beurteilen, dass das erste Bit ein und die anderen Bits 0 sind, wenn der Eingabwert in binär konvertiert wird, so dass der Eingangswert eine ganzzahlige Leistung von 2 ist.
Dies ist jedoch zu umständlich. Wir können die Position von "1" nur zum letzten Mal in der Binärzahl beurteilen und die Zeichenfolge lastIndexof () verwenden; Verfahren.
Und wir können auch feststellen, dass diese Regel auch für den Fall gilt, in dem die Eingabe 1 eingegeben wird.
Dann entstand der prägnante Code.
public static boolean ispoweroftwo (int n) {String str = Integer. }Die obige Java -Methode, um festzustellen, ob eine Ganzzahl -Leistung von 2 der gesamte Inhalt des Editors geteilt wird. Ich hoffe, es kann Ihnen eine Referenz geben und ich hoffe, Sie können Wulin.com mehr unterstützen.