ayuda para programar conversiones

abel
02 de Diciembre del 2005
lo que pasa es q` mepidieron hacer un programa que convierta numeros de base 2 a base 8 , 10 y 16, pero sin restricciones de numeracion; por que tadavia no me sale , si alguien me lo manda me salvaria la vida; de ante mano gracias. OK respondan.............

kike
02 de Diciembre del 2005
para el octal oct. para el decimal dec, para el hexadecimal hex.

de esta forma:
int n=345;
cout<<"en deciamal:"<<dec<<n<<endl;
cout<<"en octal:"<<oct<<n<<endl;
cout<<"en hexadecimal:"<<hex<<n<<endl;
para la base dos me imagino que quieres binario he encontrado esto
for(unsigned long val=32768;val;val=val/2)
{ if(n & val) cout<<"1";
else cout<<"0";
}
este bucle creo que funciona con numeros unsigned, no se con los negativos

abel
02 de Diciembre del 2005
OK. pero lo que pasa es que no se como hacerlo ,con caso es soy medio piedra lo que tengo es esto.

#include<stdio.h>
int menu (void);
main()
{
int opcion,
printf("1) convretir de base 8 a base 10");
printf("2) converir de base 16 a base 10");
printf("3) convertir de base 2 a base 16");
printf("4) convertir de base 2 a base 8");
printf("5) salir");
scanf("%d",&opcion);
return opcion;
}
char car=\'\0\';
int op=0; /*nose si de clarar como "opcion" es aparte?*/
int b1,b2;
do
{
op=menu();
switch(op) /*o le pongo opcion*/
{
case 1:
/*conversion de 8 a 10*/
break;
case 2:
/*conversion 16 a 10*/
break;
case 3:
/*conversion de 2 a 16*/
break;
case 4:
/*conversion de 2 a 8*/
break;
case 5:
printf("realmente quieres salir (s)i o` (n)");
car=getchar();
if (toupper(car)!=`s\');

op=0;
break;
default:
printf("opcion no valida intenta");
printf(" de nuevo");
}
}
while (op !=5);
return 0;
}

ya es todo lo que tengo pero nose si encada caso comoponerlo con fon o` if, gracias por tu tiempo te agradeceria simedas unos tips para lograrlo.