Título: ¿Alguien me puede explicar este programa en C? (Dec-Binario) Publicado por: jamatbar en 18 Diciembre 2013, 11:46 am Buenas, tengo un programa que pasa de decimal (solo números positivos) a binario, pero no entiendo muy bien como hace la conversión, este es el código:
Código: #include <stdio.h> Yo el programa lo entiendo de esta manera: Declaramos las funciones leeNumero y decBin, entramos en la función main, a través de la función leeNumero se comprueba que el número no sea negativo, volvemos a la función main y entramos en la función decBin, y es ahí donde me surge la duda, ya que no entiendo muy bien como hace la conversión a binario :S ¿Alguna ayuda?, gracias de antemano! P.D: El programa funciona perfectamente Título: Re: ¿Alguien me puede explicar este programa en C? (Dec-Binario) Publicado por: Almapa en 18 Diciembre 2013, 12:02 pm Por el nombre de la función se puede intuir más o menos lo que va a hacer.
Citar if (n == 0) printf("0"); Si el número introducido es 0, imprime 0. Pues 0 en binario es 0. Citar else if (n == 1) printf("1"); Lo mismo con el 1. Citar else { decBin(n / 2); printf("%d", n % 2); } Para el resto de números se pasa de decimal a binario mediante una función recursiva que se dedica a dividir el número entre 2 (Procedimiento para pasar de decimal a binario http://recursostic.educacion.es/secundaria/edad/4esotecnologia/quincena5/4q2_contenidos_2c.htm ). Y eso es todo. Un saludo! Título: Re: ¿Alguien me puede explicar este programa en C? (Dec-Binario) Publicado por: jamatbar en 18 Diciembre 2013, 12:18 pm Por el nombre de la función se puede intuir más o menos lo que va a hacer. Si el número introducido es 0, imprime 0. Pues 0 en binario es 0. Lo mismo con el 1. Para el resto de números se pasa de decimal a binario mediante una función recursiva que se dedica a dividir el número entre 2 (Procedimiento para pasar de decimal a binario http://recursostic.educacion.es/secundaria/edad/4esotecnologia/quincena5/4q2_contenidos_2c.htm ). Y eso es todo. Un saludo! Muchas gracias, no me había mirado el tema de funciones recursivas y por eso no caía xD |