Ayuda conversion a bases
Publicado por hmjmex (7 intervenciones) el 22/05/2007 00:23:19
Hola quisiera ver si es que alguien me puede ayudar, ya que tengo problemas para hacer la conversion entre bases, utilizando los metodos de conversion de bases.
Ya casi tengo el 1er paso solo que me hace falta convertir de decimal a hexadecimal, espero que alguien me pueda ayudar, no se como hacer la conversion utilizando que A=10,B=11,C=12,D=13,E=14 y F=15, el codigo es el siguiente:
Espero me puedan ayudar gracias
#include<stdio.h>
#include<conio.h>
void main()
{
int res,numero,c,opcion,x=15,y=4;
long int residuo,resultado,numero1,binario,octal,cuaternario,hexa;
float potencia10;
char otra;
do
{
clrscr();
gotoxy(x,y);printf("introduce el numero que vas a convertir");
gotoxy(x+5,y+1);scanf("%d",&numero);
clrscr();
gotoxy(x,y+1);printf("escoge la base del numero que ingresaste ");
gotoxy(x,y+2);printf("1.-decimal");
gotoxy(x,y+3);printf("2.-binario ");
gotoxy(x,y+4);printf("3.-cuaternario ");
gotoxy(x,y+5);printf("4.-octal ");
gotoxy(x,y+6);printf("5.-hexadecimal ");
gotoxy(x+5,y+8);scanf("%d",&opcion);
switch(opcion)
{
case 1:
clrscr();
numero1=numero;
binario=0;
potencia10=1;
while (numero>=1)
{
residuo=numero%2;
numero=numero/2;
binario=binario+residuo*potencia10;
potencia10=potencia10*10;
}
gotoxy(x,y);printf("el numero %ld equivale a : %ld en binario ",numero1,binario);
numero=numero1;
octal=0;
potencia10=1;
while (numero>=1)
{
residuo=numero%8;
numero=numero/8;
octal=octal+residuo*potencia10;
potencia10=potencia10*10;
}
gotoxy (x+24,y+1);
printf(": %ld en octal ",octal);
numero=numero1;
cuaternario=0;
potencia10=1;
while (numero>=1)
{
residuo=numero%4;
numero=numero/4;
cuaternario=cuaternario+residuo*potencia10;
potencia10=potencia10*10;
}
gotoxy (x+24,y+2);
printf(": %ld en cuaternario ",cuaternario);
numero=numero1;
hexa=0;
potencia10=1;
while (numero>=1)
{
residuo=numero%16;
numero=numero/16;
hexa=hexa+residuo*potencia10;
potencia10=potencia10*10;
}
gotoxy (x+24,y+2);
printf(": %ld en hexadecimal ",hexa);
break;
}
//case 2:
//case 3:
gotoxy(0,y+5); printf(" deseas realizar otra operacion s/n: ");
otra=getche();
}
while (otra=='s');
getch();
}
Ya casi tengo el 1er paso solo que me hace falta convertir de decimal a hexadecimal, espero que alguien me pueda ayudar, no se como hacer la conversion utilizando que A=10,B=11,C=12,D=13,E=14 y F=15, el codigo es el siguiente:
Espero me puedan ayudar gracias
#include<stdio.h>
#include<conio.h>
void main()
{
int res,numero,c,opcion,x=15,y=4;
long int residuo,resultado,numero1,binario,octal,cuaternario,hexa;
float potencia10;
char otra;
do
{
clrscr();
gotoxy(x,y);printf("introduce el numero que vas a convertir");
gotoxy(x+5,y+1);scanf("%d",&numero);
clrscr();
gotoxy(x,y+1);printf("escoge la base del numero que ingresaste ");
gotoxy(x,y+2);printf("1.-decimal");
gotoxy(x,y+3);printf("2.-binario ");
gotoxy(x,y+4);printf("3.-cuaternario ");
gotoxy(x,y+5);printf("4.-octal ");
gotoxy(x,y+6);printf("5.-hexadecimal ");
gotoxy(x+5,y+8);scanf("%d",&opcion);
switch(opcion)
{
case 1:
clrscr();
numero1=numero;
binario=0;
potencia10=1;
while (numero>=1)
{
residuo=numero%2;
numero=numero/2;
binario=binario+residuo*potencia10;
potencia10=potencia10*10;
}
gotoxy(x,y);printf("el numero %ld equivale a : %ld en binario ",numero1,binario);
numero=numero1;
octal=0;
potencia10=1;
while (numero>=1)
{
residuo=numero%8;
numero=numero/8;
octal=octal+residuo*potencia10;
potencia10=potencia10*10;
}
gotoxy (x+24,y+1);
printf(": %ld en octal ",octal);
numero=numero1;
cuaternario=0;
potencia10=1;
while (numero>=1)
{
residuo=numero%4;
numero=numero/4;
cuaternario=cuaternario+residuo*potencia10;
potencia10=potencia10*10;
}
gotoxy (x+24,y+2);
printf(": %ld en cuaternario ",cuaternario);
numero=numero1;
hexa=0;
potencia10=1;
while (numero>=1)
{
residuo=numero%16;
numero=numero/16;
hexa=hexa+residuo*potencia10;
potencia10=potencia10*10;
}
gotoxy (x+24,y+2);
printf(": %ld en hexadecimal ",hexa);
break;
}
//case 2:
//case 3:
gotoxy(0,y+5); printf(" deseas realizar otra operacion s/n: ");
otra=getche();
}
while (otra=='s');
getch();
}
Valora esta pregunta


0