Saludos
Alguien sabe de algun algoritmo que dado un número decimal me diga cuántos bits serán necesarios a la hora de convertirlo a binario??, por ejemplo:
si tengo el número 12 al convertirlo a binario sería 1100-> se necesitan 4 bits, pero necesito una manera que me diga cuántos antes de hacer la conversión
gracias de antemano
Una forma rapida (y "barata") es ir generando las potencias de 2 (2^1, 2^2) hasta que el numero obtenido sea mayor o igual al buscado. Llegada la condicion, la cantidad de bits necesarios seran los indicados por el exponente actual (siempre verifica que este contenido en el rango entre el exp anterior y el actual)
Ejemplo: Numero 12 (1100)
Potencias:
2^0=1
2^1=2
2^2=4
2^3=8
2^4=16 <-- 4 bits.
Ejemplo: Numero 9 (1001)
Potencias:
2^0=1
2^1=2
2^2=4
2^3=8
2^4=16 <-- 4 bits.
Espero te sirva.
Saludos!
Más que un algoritmo, yo veo una función sencilla.
ceil(log(2,X))
Redondeo al alza de logaritmo en base 2 de X.
Un saludo.
hola m@o_614 code en vb6
dim X, NumUser, Conta as integer
X=1
Conta=0
NumUser=12
while NumUser > X
X=X * 2
Conta=Conta + 1
wend
if NumUser = X then
Conta=Conta + 1
end if
ya despues de esto solo imprimes Conta
saludos flamer y dime si te sirbio
Es la solución mas sencilla, y directa, logaritmo en base 2; lo malo es que hay que usar un buena aplicación matemática o calculadora güena
Cita de: lipman en 21 Marzo 2013, 21:58 PM
Más que un algoritmo, yo veo una función sencilla.
ceil(log(2,X))
Redondeo al alza de logaritmo en base 2 de X.
Un saludo.