¿Cuál es la forma más rápida de calcular la cantidad de bits necesarios para almacenar un número?
Estoy tratando de optimizar algunas rutinas de empaquetado y desempaquetado. Para hacer el empaque, necesito calcular el número de bits necesarios para almacenar valores enteros. Aquí está el código actual.
if (n == -1) return 32;
if (n == 0) return 1;
int r = 0;
while (n)
{
++r;
n >>= 1;
}
return r;