programa en C q me convierta de binario a decimal y viceversa
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
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!!!!!!
hola me podrian facilitar ese programilla q tambien tengo una tarea pero pal 24 por fa .
gracias chauu
gracias chauu
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!!!!
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!!!!
//---------------------------------------------------------------------------
#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;
}
//---------------------------------------------------------------------------
#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;
}
//---------------------------------------------------------------------------
