How do I find maximum value of n so that 2^n is less than a value (ex, 500?)
3 次查看(过去 30 天)
显示 更早的评论
I am working on making binary code using the power method. So what I am looking to do is make a function where I input a base 10 value and find the binary translation of this value. This will be done by calculating the largest value of 2^n that is smaller than or equall to the input. n will then be the number of rows in the matrix(only for this first instance). From there it will subtract this 2^n value from the input and repeat. The matrix will input going down from the largest n value to fill in the binary code, filling in 1s for when 2 to that n value exists and 0s for when it does not. These are based on calcualtions.
Anyway I am stuck on how to do this for finding max n values that are less than input value, any ideas? From here I feel comfortable creating loops to output binary code.
0 个评论
回答(1 个)
Les Beckham
2020-2-8
I think you may be looking for log2. Documentation available here: https://www.mathworks.com/help/matlab/ref/log2.html
3 个评论
Walter Roberson
2020-2-9
closest_power2 = 2.^floor(log2(value));
value = value - closest_power2.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!