Hallo,
Zweierpotenzen haben ja die Eigenschaft, in Binärdarstellung genau eine 1 aufzuweisen (das höchste Bit).
Es sei m die in PHP größtmögliche Zahl, die in Binärdarstellung nur Einsen aufweist, welche das auch immer sein mag ;-), also Binärzahl wie 11111111...
Dann liefert IMHO der Vergleich
~(n^m) == n
true, falls n eine Zweierpotenz ist, andernfalls false.
Gruß, Don P