function EstPuissanceDe2( const i : Integer ) : boolean ; begin Result := ( i and (i-1) )=0 ; end ;
Function EstPuissanceDe2(i As Double) As Boolean EstPuissanceDe2 = (i And (i - 1)) = 0 End Function
Function EstPuissanceDe(nb As Long, p As Long) As Boolean EstPuissanceDe = (nb - p ^ Int(Log(nb) / Log(p) + 0.5)) = 0 End Function Sub Test() Debug.Print EstPuissanceDe(128, 2) End Sub
public static bool IsPowerOfTwo(int i) { return i > 0 && (i & (i - 1)) == 0; }
proc IsPoweroftwo n {return [expr {$n > 0 && ($n & ($n - 1)) == 0}]}