comment juger efficacement si un certain nombre de nombres sont 2
Question:
Comment déterminer efficacement si le nombre donné de nombres est 2 sans utiliser de fonctions flottantes ou d'opérations de déplacement?
Réponse:
Un algorithme simple et efficace est le suivant:
Explication:
<code class="language-c#">bool IsPowerOfTwo(ulong number) { return (number != 0) && ((number & (number - 1)) == 0); }</code>
Exemple:
Considérons les nombres 8 (binaire 1000). Soustrayez 1 pour obtenir 7 (binaire 0111).
Remarque:
L'algorithme ci-dessus renvoie true à 0, et 0 n'est pas la puissance de 2. Si vous souhaitez exclure 0, vous pouvez modifier l'algorithme comme suit:
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!