Trouver la puissance de 2 dans un nombre quelconque

Bonjour,

Comment trouver la puissance de 2 comprise dans un nombre (ex: Pour 80 ce serait 4), tout cela avec une formule dans une seule cellule

Merci

Bonjour MoiToukoul et bienvenue sur XLP ,

Pourrais-tu expliquer pourquoi 4 est la puissance de 2 comprise dans 80 ?

edit : c'est la puissance de 2 dans la décomposition de 80 en facteurs premiers (2 * 2 * 2 * 2 * 5)

Re,

Si le nombre est dans la cellule A1, essayez la formule matricielle suivante :

=SOMME(1*(MOD(A1/PUISSANCE(2;LIGNE($1:$20));1)=0))

image

nota : augmenter la valeur 20 dans l'expression $1:$20 si la puissance de 2 peut être supérieure à 20 (sans toutefois dépasser 49)

Bonsoir,

De ce que j'ai compris, il veut la puissance de 2 égale ou inférieure.
Par exemple 80 est compris entre 64 et 128. (2¨6 et 2¨7), donc pour moi, c'est 6 et non 4.

Si j'ai bien compris, le log en base 2 fera l'affaire :

=ENT(LOG(A1;2))

Si ce n'est pas ça, explicite mieux ta demande.

A+

Oups, je n'avais pas lu la réponse de mafraise. Effectivement, cela explique le résultat 4.

En voila un bon résultat, super site et grand merci; je garde cette bonne adresse

Pour info, dans le cas du diviseur 2 spécifiquement, on pourrait utiliser une propriété intéressante des nombres binaires : la puissance de 2 divisant le nombre est directement égale au nombre de trailing zeroes (les zéros à la fin) dans sa représentation binaire.

Pour rappel, =DECBIN(A1) permet de récupérer l'expression binaire du nombre.

Par exemple :

80 = 1010000 en binaire. Il y a 4 zéros à la fin => 80 = 2^4 * k

165 = 10100101 en binaire. Il n'y a aucun zéro à la fin (165 = 3*5*11) => 165 = 2^0 * k

Bon je ne donne pas de formule utilisant cette propriété car sur XL<2021 (sans Fonction Excel : FRACTIONNER.TEXTE) c'est fastidieux. Mais voilà une petite curiosité.

Merci pour l'ino

Bonjour saboh12617 ,

Je n'y avais pas pensé. Néanmoins DECBIN() semble limité au nombre max 511. Il vaudrait mieux utiliser la fonction BASE() (à/c d'Excel 2013).

BASE() doit accepter de convertir des nombres entre 0 et 2^53-1 dans une base comprise entre 2 à 36.

Mais comme tu l'as dit, ça ne change pas le fait qu'il faut compter le nombre de zéro en fin de nombre converti.

OK

Rechercher des sujets similaires à "trouver puissance nombre quelconque"