elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Foros Generales
| |-+  Dudas Generales (Moderador: engel lex)
| | |-+  algoritmo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: algoritmo  (Leído 3,484 veces)
m@o_614


Desconectado Desconectado

Mensajes: 389


Ver Perfil
algoritmo
« en: 21 Marzo 2013, 20:23 pm »

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


En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.518


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: algoritmo
« Respuesta #1 en: 21 Marzo 2013, 20:37 pm »

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!


« Última modificación: 21 Marzo 2013, 20:38 pm por MCKSys Argentina » En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

‭lipman


Desconectado Desconectado

Mensajes: 3.062



Ver Perfil WWW
Re: algoritmo
« Respuesta #2 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.
En línea

Flamer


Desconectado Desconectado

Mensajes: 1.052


crack, crack y mas crack...


Ver Perfil WWW
Re: algoritmo
« Respuesta #3 en: 22 Marzo 2013, 04:18 am »

hola m@o_614 code en vb6

Código:
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
En línea

Mi Canal De Youtube y Blog

https://elblogdeflamer.blogspot.com

seneka77

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: algoritmo
« Respuesta #4 en: 22 Marzo 2013, 14:41 pm »

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
  
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.
« Última modificación: 22 Marzo 2013, 14:47 pm por seneka77 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines