How do I find maximum value of n so that 2^n is less than a value (ex, 500?)
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuestas (1)
Les Beckham
el 8 de Feb. de 2020
I think you may be looking for log2. Documentation available here: https://www.mathworks.com/help/matlab/ref/log2.html
3 comentarios
Walter Roberson
el 9 de Feb. de 2020
closest_power2 = 2.^floor(log2(value));
value = value - closest_power2.
Ver también
Categorías
Más información sobre Data Type Conversion en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!