Effacer les filtres
Effacer les filtres

how to find the nearest smallest power of 2 to an integer?

46 vues (au cours des 30 derniers jours)
Mnr
Mnr le 5 Mai 2015
Commenté : Mnr le 5 Mai 2015
Hello all,
I would like to write a code that finds the nearest smallest power of 2 to integers. For instance, if my integer is 6, its smallest nearest power of 2 is 4, while if the integer is 12, the smallest nearest integer is 8. I would appreciate if somebody can help me please. Thanks.

Réponse acceptée

Stephen23
Stephen23 le 5 Mai 2015
Modifié(e) : Stephen23 le 5 Mai 2015
>> N = 6;
>> pow2(floor(log2(N)))
ans =
4
And it is even fully vectorized code, so you can check all of your values at once:
>> pow2(floor(log2([6,12])))
ans =
4 8
  3 commentaires
Stephen23
Stephen23 le 5 Mai 2015
Modifié(e) : Stephen23 le 5 Mai 2015
Option Two (more robust):
[X,~] = log2(N);
if X==0.5
... code
else
... other code
end
Option Two (one line):
if rem(log2(N),1)==0
... code
else
... other code
end
Mnr
Mnr le 5 Mai 2015
Thanks a lot!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Tags

Aucun tag saisi pour le moment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by