Borrar filtros
Borrar filtros

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

46 visualizaciones (últimos 30 días)
Mnr
Mnr el 5 de Mayo de 2015
Comentada: Mnr el 5 de Mayo de 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.

Respuesta aceptada

Stephen23
Stephen23 el 5 de Mayo de 2015
Editada: Stephen23 el 5 de Mayo de 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 comentarios
Stephen23
Stephen23 el 5 de Mayo de 2015
Editada: Stephen23 el 5 de Mayo de 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 el 5 de Mayo de 2015
Thanks a lot!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Aún no se han introducido etiquetas.

Community Treasure Hunt

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

Start Hunting!

Translated by