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

37 Ansichten (letzte 30 Tage)
Mnr
Mnr am 5 Mai 2015
Kommentiert: Mnr am 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.

Akzeptierte Antwort

Stephen23
Stephen23 am 5 Mai 2015
Bearbeitet: Stephen23 am 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 Kommentare
Stephen23
Stephen23 am 5 Mai 2015
Bearbeitet: Stephen23 am 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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Tags

Noch keine Tags eingegeben.

Community Treasure Hunt

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

Start Hunting!

Translated by