ist <:> Frage:
Wie können Sie effizient bestimmen, ob die angegebene Anzahl von Zahlen 2 ist, ohne dass schwebende Punktvorgänge oder Verschiebungsvorgänge verwendet werden?
Antwort:
Ein einfacher und effizienter Algorithmus lautet wie folgt:
Erläuterung:
bool IsPowerOfTwo(ulong number) { return (number != 0) && ((number & (number - 1)) == 0); }
Beispiel:
Betrachten Sie die Zahlen 8 (binär 1000). Subtrahieren Sie 1, um 7 zu erhalten (binär 0111).
<:> Hinweis:
Der obige Algorithmus kehrt auf 0 zurück, und 0 ist nicht die Kraft von 2. Wenn Sie 0 ausschließen möchten, können Sie den Algorithmus wie folgt ändern:
Das obige ist der detaillierte Inhalt vonWie kann ich effizient bestimmen, ob eine Zahl eine Leistung von 2 ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!