#include <iostream.h>
#include <conio.h>
#include <string.h>
#include <math.h>
convertirbin(){
char cad[8]={' '};
int c=0,n=0,tam,i,num;
cout<<"Ingrese el numero en binario: ";
cin>>cad;
tam=strlen(cad);
for(i=tam-1;i>=0;i--) {
if(cad[i]=='0')
num=0;
else
num=1;
n=n+num*pow(2,c);
c++; }
return n;
}
convertiroctaldec(){
char cad[3];
int c=0,n=0,tam,i,num[3];
cout<<"Ingrese el numero en octal: ";
cin>>cad;
tam=strlen(cad);
for(i=tam-1;i>=0;i--) {
switch(cad[i])
{
case '1': num[i]=1; break;
case '2': num[i]=2; break;
case '3': num[i]=3; break;
case '4': num[i]=4; break;
case '5': num[i]=5; break;
case '6': num[i]=6; break;
case '7': num[i]=7; break;}
n=n+num[i]*pow(8,c);
c++; }
return n;
}
conversion() {
char cad[3];
int c=0,n=0,tam,i,num[3];
cout<<"Ingrese el numero: ";
cin>>cad;
tam=strlen(cad);
for(i=tam-1; i>=0; i--) {
switch(cad[i])
{
case '0': num[i]=0; break;
case '1': num[i]=1; break;
case '2': num[i]=2; break;
case '3': num[i]=3; break;
case '4': num[i]=4; break;
case '5': num[i]=5; break;
case '6': num[i]=6; break;
case '7': num[i]=7; break;
case '8': num[i]=8; break;
case '9': num[i]=9; break;
case 'a': num[i]=10;break;
case 'b': num[i]=11;break;
case 'c': num[i]=12;break;
case 'd': num[i]=13;break;
case 'e': num[i]=14;break;
case 'f': num[i]=15;break; }
n=n+num[i]*pow(16,c);
c++; }
return n; }
void convertir(int n, int base){
int y[8],z[8];
cout<<"El resultado es: "<<endl;
for(int i=0;i<8;i++)
{
z[i]=n/base;
y[i]=n%base;
n=z[i];
}
for(int j=7;j>=0;j--) {
cout<<y[j]; }
}//fin de la funcion
void convertiroct(int n, int base){
int y[3],z[3];
cout<<"El resultado es: "<<endl;
for(int i=0;i<3;i++)
{
z[i]=n/base;
y[i]=n%base;
n=z[i];
}
for(int j=2;j>=0;j--) {
cout<<y[j]; }
}//fin de la funcion
void convertirhex(int n) {
int hex[32],x=0;
if(n<=0)
{
cout<<"Error!!"<<endl;
}
while(n>0)
{
hex[x]=n%16;
n/=16;
x++;
}
x--;
cout<<"El numero en hexadecimal es: ";
for(x;x>=0;x--)
{
if (hex[x]<10)
cout<<hex[x];
else if (hex[x]==10)cout<<"A";
else if(hex[x]==11)cout<<"B";
else if(hex[x]==12)cout<<"C";
else if(hex[x]==13)cout<<"D";
else if(hex[x]==14)cout<<"E";
else if(hex[x]==15)cout<<"F";
}
}
main(){
int n,opcion;
clrscr();
cout<<"Menu:"<<endl;;
cout<<"1.-Decimal --> Binario"<<endl;
cout<<"2.-Decimal --> Octal"<<endl;
cout<<"3.-Decimal --> Hexadecimal"<<endl;
cout<<"4.-Binario --> Decimal"<<endl;
cout<<"5.-Binario --> Octal"<<endl;
cout<<"6.-Binario --> Hexadecimal"<<endl;
cout<<"7.-Hexadecimal --> Decimal"<<endl;
cout<<"8.-Hexadecimal --> Octal"<<endl;
cout<<"9.-Hexadecimal --> Binario"<<endl;
cout<<"10.-Octal --> Decimal"<<endl;
cout<<"11.-Octal --> Hexadecimal"<<endl;
cout<<"12.-Octal --> Binario"<<endl;
cout<<"13.-Salir"<<endl;
cout<<"Ingresa la opcion que desees: ";
cin>>opcion;
switch(opcion){
case 1:
cout<<"Ingrese el numero: ";
cin>>n;
convertir(n,2);
break;
case 2:
cout<<"Ingrese el numero: ";
cin>>n;
convertiroct(n,8);
break;
case 3:
cout<<"Ingrese el numero: ";
cin>>n;
convertirhex(n);
break;
case 4:
cout<<"El resultado es: "<<convertirbin()<<endl;
break;
case 5:
convertiroct(convertirbin(),8);
getch();
break;
case 6:
convertirhex(convertirbin());
break;
case 7:
cout<<"El resultado es: "<<conversion()<<endl;
break;
case 8:
convertiroct(conversion(),8);
break;
case 9:
convertir(conversion(),2);
break;
case 10:
cout<<"El Resultado es: "<<convertiroctaldec()<<endl;
break;
case 11:
convertirhex(convertiroctaldec()); break;
case 12:
convertir(convertiroctaldec(),2); break;
case 13:
return 0;
}
getch();
return main();
}