Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Foros > C / C++ > programa en C q me convierta de binario a decimal y viceversa
-Foros de debate

C / C++
Lista de foros | Lista de mensajes de este foro

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: programa en C q me convierta de binario a decimal y viceversa
Enviado por davegahan23 el día 18 de junio de 2005

hola me podrian facilitar ese programilla q tambien tengo una tarea pero pal 24 por fa .

gracias chauu

 
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!!!!

 
Re: Re: Re: programa en C q me convierta de binario a decimal y viceversa
Enviado por fantasma el día 21 de junio de 2005

//---------------------------------------------------------------------------

#include<iostream.h>
#include<math.h>

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);

binario++;

}
return(sumatoria);
}
void conv(int decimal,char* resultado)
{
int i,j;int binario[100],primero;//char *resultado=new(char);
if(decimal>=0)primero=0;else {primero=1;decimal=-decimal;}
for(i=0;decimal>=1;i++)
{
binario[i]=decimal%base;
decimal=decimal/base;

}
binario[i]=primero;
for(int j=i;j>=0;j--)
{
*resultado=binario[j]+48;
resultado++;
}
}
int main()
{
int entero; char binario[100]="";
cout<<"Entero: ";
cin>>entero;
conv(entero,binario);
cout<<binario<<endl;
cout<<"Binario: ";
cin>>binario;
cout<<"Binario: "<<conv(binario)<<endl;
system("pause");
return 0;
}
//---------------------------------------------------------------------------

 
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

 


Re: Re: Re: programa en C q me convierta de binario a decimal y viceversa
Enviado por milton el día 28 de abril de 2008

por favor ayudame con esa funcio

 




Tienda
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network