Hola, como parte dun programa que estoy haciendo necesitaria una función que dados dos numeros cualesquiera diese el menor numero potencia de dos que fuera mayor que los dos numeros. Si alguien me pudiese dar una idea de como hacerlo, se lo agradecería
Puedes ir potencia a potencia, desde 2^1, hasta que el número cumpla ambas condiciones.
primero escoges el mayor de los 2, luego tienes 2 vias
1- ciclo que vaya elevando 2 hasta que sea mayor que el escogido
2- calcular el logaritmo de el mayor en base 2 y luego elevar 2 al resultado
Supongamos n tu número y k una variable inicializada a 1.
En un bucle que mueva a nivel de bits n hacia la derecha hasta que n valga 0, k se sumará a sí misma.
Al terminar tendrás en k el número que buscas.
O mejor aún cada vez que n se desplace a la derecha desplazar k una vez a la iźquierda.
Aunque esto supondría una mejora solo para microcontroladores de gama baja donde la suma es más costosa que desplazar bits.