Længlich: Wie prüfe ich eine Zahl auf Zweierpotenz (2,4,8,16,...)?

Beitrag lesen

Voghdzuyin!

ich will prüfen, ob eine Variable eine Zweierpotenz (2^n) ist, oder nicht...

Wenn nicht, soll er die Zahl zur nächst höheren Zweierpotenz machen.

Zur Prüfung gab's ja schon einige Antworten. Aber eigentlich brauchst Du die doch gar nicht, oder? Du willst immer die kleinste Zweierpotenz haben, die größergleich Deine $zahl ist:

  
if ($zahl < 1)  
{  
    echo('Was immer Du in diesem Fall haben willst');  
}  
else  
{  
    $potenz = 1; // Wir fangen mit der kleinsten an  
    while ($zahl > $potenz) // Solange sie noch zu klein ist...  
    {  
        $potenz <<= 1; // ... versuchen wir die nächsthöhere  
    }  
    echo($potenz);  
}  

Viele Grüße vom Længlich