Comment trouver la plus grande puissance de 2 moins que le nombre donné

J'ai besoin de trouver la plus grande puissance de 2 inférieure au nombre donné.
Et je l'ai coincé et ne peut pas trouver une solution.

Code:

public class MathPow
{
   public int largestPowerOf2 (int n)
   {
        int res = 2;        
        while (res < n) {
                res =(int)Math.pow(res, 2);
        }

        return res;
   }
}

Cela ne fonctionne pas correctement.

Test de sortie:

Arguments Actual Expected
-------------------------
9         16     8       
100       256    64      
1000      65536  512     
64        256    32      

Comment résoudre ce problème?

source d'informationauteur nazar_art