Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: joseh94 en 15 Noviembre 2014, 15:54 pm



Título: Programa pasar a binario!
Publicado por: joseh94 en 15 Noviembre 2014, 15:54 pm
Hola de nuevo a todos compañeros!

Os comento, tengo que hacer un ejercicio que trata de hacer un programa en C, que obtenga un número aleatorio entre 0 y 255 y devuelva un vector de caracteres que contenga la conversion a binario de dicho número, y aparte, mostrar en pantalla los milisegundos que tarda. ¿Alguien me podría echar una mano?

Un saludo a todos! y gracias de antemano por vuestro tiempo!


Título: Re: Programa pasar a binario!
Publicado por: Miky Gonzalez en 15 Noviembre 2014, 17:28 pm
Primero antes de nada quiero decir que lo siguiente es mi opinión aunque creo que más gente la apoyará:

No puedes venir y soltar el ejercicio que te mandaron hacer para que otros lo hagan por ti. Publica un código, si tienes duda publica el código, da una pregunta o varias pero que sean concretas, esto es:

¿Cómo puedo hacer para que se obtenga un número aleatorio de 0-255?
¿Cómo puedo obtener un vector que contenga la conversión binaria de un número de tamaño 1 byte?
¿Cómo puedo cronometrar los milisegundos que tarda un proceso en la ejecución?

Saludos, suerte con tu ejercicio. Te recomiendo leer usos de la librería básica.


Título: Re: Programa pasar a binario!
Publicado por: joseh94 en 15 Noviembre 2014, 17:44 pm
Está muy bien eso que dices miky, pero yo me refería a que si alguien me daría alguna indicación sobre como hacerlo, no he pedido el código entero. Yo había pensado en primero sacar el número de divisiones (restos) que se le puede aplicar al número y sumarle el último cociente y con ese número ya crear un vector de ese tamaño, pero nose muy bien como he de seguir ya que si recorro el vector y voy dividiendo, el número en binario me saldría al revés.

¿Alguien que me diga una idea sobre la que trabajar?



Título: Re: Programa pasar a binario!
Publicado por: Miky Gonzalez en 15 Noviembre 2014, 18:41 pm
Para pasar un número en base décimal (indiquémoslo con [10]) éste se va diviendo por 2 (base binaria) hasta que el resto es 0. El resto de cada cifra binaria colocada haciendo el total del número binario. Esto es:

(http://recursostic.educacion.es/secundaria/edad/4esotecnologia/quincena5/imagenes5/pasar_decimal_binario.gif)

Puedes empezar por este código:

Código
  1. #include <stdio.h>
  2.  
  3. int main(int argc, char **argv) {
  4. char num_binario[9] = {'-', '-', '-', '-', '-', '-', '-', '-', '-'};
  5. char num = 79; // esto es que alcanza valores desde -128, 127
  6.  
  7. // realizar conversión binario automático
  8. char bucle_i, resto, resultado = num;
  9. num_binario[8] = '\0'; // para imprimirlo como cadena
  10. for(bucle_i = 7; resultado != 0; bucle_i--) {
  11. resto = resultado % 2;
  12. resultado /= 2;
  13. num_binario[bucle_i] = resto + '0';
  14. }
  15.  
  16. printf("num_binario = %s\n", num_binario);
  17.  
  18. return 0;
  19. }

Como tarea, para no darte todo completo y que aprendas por ti mismo:
El código falla para valores mayores a 127, arregla ese error (pista: declarar la variable de forma que su rango este entre 0-255).
Puedes aumentar el código para que admita más de 255 caracteres.


Título: Re: Programa pasar a binario!
Publicado por: zShackra en 15 Noviembre 2014, 18:53 pm
Repito lo que dije en otro tema:

Los foros son lugares para ofrecer orientación a usuarios, no para resolverles vía códigos sus problemas.

La forma correcta es sin publicar código, sólo en aquellas áreas específicas donde el usuario se vea ofuscado, se explica con un poco más de claridad, el asunto es no publicar código a menos que sea estrictamente necesario.


Título: Re: Programa pasar a binario!
Publicado por: joseh94 en 15 Noviembre 2014, 20:49 pm
Oye zShackra, no seas tan bacin, te harás un favor. Si tu no quieres aportar nada, pues no contestes o pasa del tema, pero no vengas de sabelotodo cuando llevas en el foro dos días como quien dice.. Y aprende a leer, ya puse anteriormente que no he pedido el código resuelto, sólo una idea a partir de la cual poder trabajar porque no se me ocurre nada y lo que se me ha ocurrido no sé como ejecutarlo, así que, no bacinees tanto e infórmate mejor antes de hablar ;)

Un saludo, compañero

Pd: Gracias miky por tu ayuda


Título: Re: Programa pasar a binario!
Publicado por: Eternal Idol en 15 Noviembre 2014, 21:09 pm
Oye zShackra, no seas tan bacin, te harás un favor. Si tu no quieres aportar nada, pues no contestes o pasa del tema, pero no vengas de sabelotodo cuando llevas en el foro dos días como quien dice.. Y aprende a leer, ya puse anteriormente que no he pedido el código resuelto, sólo una idea a partir de la cual poder trabajar porque no se me ocurre nada y lo que se me ha ocurrido no sé como ejecutarlo, así que, no bacinees tanto e infórmate mejor antes de hablar ;)

Un saludo, compañero

Pd: Gracias miky por tu ayuda

Vos llevas tres dias y la politica del sub-foro es la que zShackra delineo.


Título: Re: Programa pasar a binario!
Publicado por: zShackra en 15 Noviembre 2014, 22:17 pm
Oye zShackra, no seas tan bacin, te harás un favor. Si tu no quieres aportar nada, pues no contestes o pasa del tema, pero no vengas de sabelotodo cuando llevas en el foro dos días como quien dice.. Y aprende a leer, ya puse anteriormente que no he pedido el código resuelto, sólo una idea a partir de la cual poder trabajar porque no se me ocurre nada y lo que se me ha ocurrido no sé como ejecutarlo, así que, no bacinees tanto e infórmate mejor antes de hablar ;)

Un saludo, compañero

Pd: Gracias miky por tu ayuda

Sin ánimos de offtopic, pero... no es cuestión de sabiduría o no, es cuestión de respetar las políticas como dice Eternal Idol. De todos modos, no sabía yo que la antigüedad en un foro, denotaba el conocimiento de una persona...

Me disculpo si te hice sentir inferior, jamás fue mi intención.


Título: Re: Programa pasar a binario!
Publicado por: Miky Gonzalez en 15 Noviembre 2014, 22:22 pm
Aquí todos vamos intentando quedar como quien mejor tiene la razón. Los temas en el foro se crean para ayudar, si mal no veo, mi primer mensaje fue:

Citar
No puedes venir y soltar el ejercicio que te mandaron hacer para que otros lo hagan por ti. Publica un código, si tienes duda publica el código, da una pregunta o varias pero que sean concretas, esto es:

¿Cómo puedo hacer para que se obtenga un número aleatorio de 0-255?
¿Cómo puedo obtener un vector que contenga la conversión binaria de un número de tamaño 1 byte?
¿Cómo puedo cronometrar los milisegundos que tarda un proceso en la ejecución?

A lo que el respondió que no quería un código completo, sólo quería una referencia. Ya sé que él ha podido al menos intentar algo de código y si le sale mal  publicarlo para que nosotros le ayudemos.

Si al aportar ese código como recurso he estado invalidando la política de este foro entonces no era la intención, la única intención con la que posteo en el foro es para ayudar a los demás o publicar un aporte de código. No quiero ver si soy el que más sabe o el que más respeta las normas: Los pedantes sobran en este foro.

Saludos,
MikyGonzalez.


Título: Re: Programa pasar a binario!
Publicado por: engel lex en 15 Noviembre 2014, 22:29 pm
con respecto a la discusión

1- tener más tiempo en el foro no te hace más inteligente, pero normalmente es un buen indicio de que entiendes las politicas y buenos comportamientos en el mismo, cosa que en muchos casos lleva a mejores preguntas o respuestas

2- la intención del foro no es dar el problema resuelto, es ayudar a que la persona lo resuelva, procura responder en pseudo o la duda puntual como ej si pregunta como aplicar un problema

3- eviten en lo posible desvirtuar el asunto del tema


Título: Re: Programa pasar a binario!
Publicado por: Eternal Idol en 15 Noviembre 2014, 22:38 pm
No existe practicamente ninguna circunstancia en la cual este justificado poner codigo completo compilable para responder un hilo: no se hacen tareas ajenas.