Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.
programa en C q me convierta de binario a decimal y viceversa
Enviado por Gianina el día 16 de junio de 2005
Hola es una tarea q tengo q entregar el Lunes 20 de junio y la necesito de urgencia, pero el programa debe ser lo mas simple posible ,ayudemen
Re: programa en C q me convierta de binario a decimal y viceversa
Enviado por Getta el día 18 de junio de 2005
hola gianina, bueno lo que quieres hacer es muy cencillo, tienes que tomar un numero y dividirlo sucesivamente por dos y los restos de los sucesivos resultados te daran los simbolos del sistema binario, por ejemplo el numero 18 si lo dividimos por dos nos da 9 y resto 0 (9.0), entonces el primer digito de izquierda a derecha es 0 (cero), luego tomamos su parte entera al resultado en este caso 9 lo dividimos por 2 y nos da 4 con resto de 5 (4.5) entonces el segundo digito sera 1 (uno), tomamos nuevamente la parte entera del resultado 4 lo dividimos por dos, nos da 2 con resto 0 (2.0), el tercer digito seria un 0 (cero), tomamos el 2 y lo dividimos por 2 nos da 1 con resto 0 (1.0), el cuarto digito seria 0 (cero), y por ultimo dividimos el 1 por 2 que nos da 0 con resto 5 (0.5), en este caso el quinto digito seria un 1 (uno), y ya no nos queda nada por dividir puesto que el resultado es menor a uno, si tomamos los digitos que tenemos nos queda el numero 18 en binario 10010 (recurda que los digitos se van formando de izquierda a derecha), este numero facilmente se comprueba con la siguiente formula (0*1 + 1*2 + 0*4 + 0*8 + 1*16)=(0+2+0+0+16)=18, bueno ahora lo debes pasar a codigo, creo que es muy sencillo, dividir el numero hasta que el resto sea menor a 1, trabajar con la parte entera del resultado para la siguiente division y luego ir concatenando de izquierda a derecha los ceros y unos dependiendo del resto de cada division. nada mas espero que te sirva de algo mucha suerte!!!!!!
Re: Re: programa en C q me convierta de binario a decimal y viceversa
Enviado por Getta el día 18 de junio de 2005
Hola chicos: me falto explicar como es la conversión de binario a decimal, si prestan atención a la explicación de mas arriba, se darán cuenta de que es más cencillo todavia, solo basta con tomar los dígitos de izquierda a derecha e ir multiplicandolo por su peso, al igual que lo hacemos con los decimales, la serie seria 2 a la 0, 2 a la 1, 2 a la 2, 2 a la tres .... asi sucesivamente.
Esto lo multiplicamos por el digito correspondiente, por ejemplo si tomamos el mismo numero el 18 seria algo así:
numero binario: 10010
tomamos el primer digito (0) y lo multiplicamos por 2 a la 0, esto nos da 0.
tomamos el segundo digito (1) y lo multiplicamos por 2 a la 1, esto nos da 2.
a simple vista adelantamos el resultado de los digitos 3 y cuatro que van a ser cero.
y por ultimo el quinto digito (1) lo multiplicamos por 2 a la 4, esto nos da 16.
Si sumamos todos los resultados nos queda al fin el numero 18, (0 + 2 + 0 + 0 + 16)=18
Si necesitan la función que haga esto me avisan.
Mucha suerte!!!!
int binario[100];
const int base=2;
int conv(char binario[100])
{
int sumatoria=0;
for(int i=strlen(binario)-1;i>=0;i--)
{
sumatoria+=pow(base,i) * (int(*binario)-48);
Re: Re: Re: Re: programa en C q me convierta de binario a decimal y viceversa
Enviado por NANCY el día 18 de septiembre de 2005
Hola amigo disculpa estaba viendo tu programa y me sirvio mucho gracias pero no entendi porque en la parte:
sumatoria+=pow(base,i) * (int(*binario)-48);
le pusiste un numero 48