Bases de conversion

ryfast
05 de Mayo del 2004
Hola mirad necesito una base de conversion binario-decimal-octal-hexadecimal, en la que se cambien todas con todas para lenguaje en C, me lo ha pedido mi profesor y no tengo ni una minima idea de como hacerlo, si me podeis ayudar. Gracias Es urgente para aprobar. Hoy mismo si es posible

noel solw
05 de Mayo del 2004
Mira, no se lo que es una base de conversion.
Te envio un programa que cambia entre base decimal y binaria, vicerversa.
Puedes basarte en el para otras bases.
Exito ! ! !

// program bases.cpp
// convcersion de unb numero decimal a binario, y binario a dcimal
// usando menu de opciones

#include <iomanip.h>
#include <iomanip.h>
#include <conio.h>

char GetChoice(char *msg)
{
cout << msg;
char choice = getch();
cout << endl;
return choice;
} // GET CHOICE

long GetNum(char *msg)
{
long num;
cout << "get a " << msg << " number : ";
cin >> num;
if(num < 0)
num = -num;
return num;
} // GET NUM

char *DecimalToBinary(long num)
{
static char str[120];
static int i = 0;
if(!num)
{
i = 0;
return NULL;
}
DecimalToBinary(num/2);
str[i] = '0' + num%2;
str[++i] = 0;
return str;
} // DECIMAL TO BINARY

int BinaryToDecimal(long num)
{
int result = 0,exp = 1;
while(num)
{
int x = num % 10;
if(x > 1)
return -1;
result = result + x*exp;
exp *= 2;
num /= 10;
}
return result;
} // BINARY TO DECIMAL

void main()
{
for(;GetChoice("another one ? - ESC for exit --->")!= 27;)
{
long num_in;
char *num_out;
int binum;
switch(GetChoice("d for decimal, b for binary : "))
{
case 'd' : cout << "decimal to binary : " << endl << endl;
num_in = GetNum("decimal");
num_out = DecimalToBinary(num_in);
cout << "binary number is : " << num_out << endl;
break;
case 'b' : cout << "binary to decimal : " << endl << endl;
num_in = GetNum("binary");
binum = BinaryToDecimal(num_in);
if(binum < 0)
cout << "illegal input" << endl;
else
cout << "decimal number is : " << binum << endl;
break;
} // SWITCH
} // FOR
cout << endl << endl << "end of program - good bye ! ! !" << endl;
} // MAIN