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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Alguien podría explicarme este codigo por favor?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Alguien podría explicarme este codigo por favor?  (Leído 1,175 veces)
maxirua

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Alguien podría explicarme este codigo por favor?
« en: 2 Julio 2015, 08:19 am »

Es un código para convertir un valor en binario hacia cadena de caracteres. Lo que no se es como va haciendo el proceso para guardar los valores en la cadena de caracter

Código
  1. void bin_to_string(unsigned int value, char *str)
  2. {
  3.  char aux;
  4.  unsigned int unit;
  5.  aux = 0;
  6.  str[0] = str[1] = str[2] = str[3] = str[4] = '0';
  7.  str[5] = 0;
  8.  unit = 10000;
  9.  while (value)
  10.  {
  11.    if (value>=unit)
  12.    {
  13.      value -= unit;
  14.      str[aux]++;
  15.    } else
  16.    {
  17.      aux++;
  18.      unit /= 10;
  19.    }    
  20.  }
  21.  while (str[0]=='0')
  22.  {
  23.    for (aux=0; aux<=4; aux++) str[aux]=str[aux+1];
  24.  }
  25. }

Mod: Los códigos deben ir en etiquetas GeSHi


« Última modificación: 2 Julio 2015, 21:35 pm por engel lex » En línea

Seyro97

Desconectado Desconectado

Mensajes: 145


Ver Perfil WWW
Re: Alguien podría explicarme este codigo por favor?
« Respuesta #1 en: 2 Julio 2015, 21:28 pm »

No sé de donde habrás sacado este código, pero no me parece un buen ejemplo. Me explico: En primer lugar, lo que tú pasas a la función es un entero y un puntero hacia un tipo char. Pues bien, tu no sabes si ese puntero está inicializado o no, o siquiera sabes si tiene espacios suficientes. Por ejemplo, podrías haber declarado una variable así:
Código
  1. char cadena[2] = "";
y tu se la pasarías a la función como bin_to_string(value, cadena); En este caso, es posible que el programa crashee por salirse de la memoria del programa. En segundo lugar, a mi parecer es mejor tenerlo mas ordenado. Cuando declaras la variable uint la dejas sin inicializar, y la inicializas después con una constante. Mejor que la inicialices cuando la declaras siempre  que sea posible.

Por cierto, usa las etiquetas GeSHI :P

Mod: no hacer doble post


« Última modificación: 2 Julio 2015, 21:36 pm por engel lex » En línea

Carlos Peláez González. visita http://www.taringa.net/EnjoyC para muchos tutoriales!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Alguien podria explicarme sobre WebDav ??
Nivel Web
Tengu 9 4,745 Último mensaje 26 Marzo 2008, 20:58 pm
por el chavo
alguien me podria explicar este codigo...
Desarrollo Web
Paul Young 4 1,953 Último mensaje 8 Septiembre 2012, 15:14 pm
por #!drvy
alguien me podria ayudar con este problemita por favor !!!! « 1 2 »
Seguridad
arme 16 6,525 Último mensaje 13 Enero 2013, 11:01 am
por noukeys
Por favor me puede ayudar a explicarme este ejercicio
Programación C/C++
panda45 1 1,245 Último mensaje 23 Octubre 2014, 23:36 pm
por Eternal Idol
¿Alguien podria explicarme como funciona el puntero tipo función?
Programación C/C++
Gojira 1 711 Último mensaje 25 Febrero 2018, 19:30 pm
por MAFUS
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines