Está en la página 1de 7

CODIGO EN C++ DEL CONVERTIDOR DE BASES

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <fstream>
#include <string>
#include <iomanip>

using namespace std;

void arreglo (int numero [], int digitos, int bx);


int convertirdecimal (int numero [], int digitos, int bx, int by);
void convertirbase (int decimal, int by);
int checabase ();
int checaby ();
int cont();
int conv();
void mostrarDatos();
void escribirEnArchivo();
void recuperarDeArchivo();
void salidaArchivo();

int main(int argc, char** argv) {

int digitos = 0;
int bx, by;
int decimal;

cout << "----------------------------Convertidor-----------------------------\n\n";

bx = checabase ();

cout << "\n longitud del numero a convertir \n\n ";


contendra el numero a ingresar
cin >> digitos;

// Cuantos digitos

// Se almacenara la longitud del numero

int numero [digitos];

// se ingr

cout <<"\n Introduce el numero

a convertir, digito a digito\n\n";

arreglo (numero, digitos, bx);


decimal = convertirdecimal (numero, digitos, bx, by);
by = checaby();

cout << "\n";

convertirbase (decimal, by);


system ("PAUSE");
return 0;

int checabase ()
{
int x;

// se de clara variable en donde se almacenara el numero a convertir

// Aqui se pide al usuario que ingrese el numero que desea convertir a cualquier
otra base
// Ingresando solamente el numero que se muestra en frente de la frase

cout <<"En que base esta el numero a convertir: \n ";


cout <<"Decimal = 10 \n";

cout <<"Binario = 2 \n";


cout <<"Octal = 8\n";
cout <<"Hexadecimal = 16 \n \n ";
cin >> x;

// se almacena el numero ingresado

if(x >=17)
{
cout << "\n\n Ingrese una base menor a 16 para la conversion \n\n";
cout << "A que base deseas convertir, ingresalo en numero: \n";
cout << "Decimal = 10 \n";
cout << "Binario = 2 \n";
cout << "Octal = 8 \n";
cout << "Hexadecimal = 16 \n \n ";
cin >> x;
}

if(x <=-1)
{

cout << "\n \n Ingrese una base menor a 16 para la conversion \n\n";
cout << "A que base deseas convertir, ingresalo en numero: \n";
cout << "Decimal = 10 \n";
cout << "Binario = 2 \n";
cout << "Octal = 8 \n";
cout << "Hexadecimal = 16 \n \n ";
cin >> x;
}
return x;
}

int checaby ()
{

int x;

cout << "\n\n A que base deseas convertir, ingresalo en numero: \n\n";
cout << "Decimal = 10 \n";
cout << "Binario = 2 \n";
cout << "Octal = 8\n";
cout << "Hexadecimal = 16 \n \n ";
cin >> x;

if(x >=17)
{
cout << "\n \n Ingrese una base menor a 16 para la conversion \n\n";
cout << "A que base deseas convertir, ingresalo en numero: \n ";
cout << "Decimal = 10 \n";
cout << "Binario = 2 \n";
cout << "Octal = 8\n";
cout << "Hexadecimal = 16 \n \n ";
cin >>x;
}

else if (x <=-1)
{
cout << "\n \n Ingrese una base mayor para la conversion \n\n";
cout << "\n \n A que base deseas convertir, ingresalo en numero: \n ";
cout << "Decimal = 10 \n";
cout << "Binario = 2 \n";
cout << "Octal = 8\n";
cout << "Hexadecimal = 16 \n \n ";
cin >>x;
}
return x;
}

void arreglo (int numero [], int digitos, int bx)


{
int i,x, a;
for (i=0; i<digitos; i++)
{
cout << "\n Introduce su numero \n", i+1;
cin >>numero[i];
if (numero[i]>=bx || numero[i]<0)
{
cout << "\n Su numero no es valido \n";
cout << "\n Introduce el digito \n", i+1;
cin >>numero[i];
}
}

cout << "\n El numero a convertir es: \n\n";

for (i=0; i<digitos; i++)


cout << numero [i];

int convertirdecimal (int numero [], int digitos, int bx, int by)
{
int i, pot;
int x=0;
for (i=digitos-1, pot=0; i>=0, pot<digitos; i--, pot++)
{
x+= (pow(bx, pot)* numero[i]);
}
return x;

void convertirbase (int decimal, int by)


{
int cociente,residuo,cont, i,j;
int conv [50];
i=0;
do{
cociente = decimal/by;
residuo = decimal%by;
conv[i] = residuo;
decimal = cociente;
i+=1;
} while (cociente>0);

cout << "\n El numero convertido es: \n";


ofstream salidaArchivo("convertidorBases.txt",ios::out);
for (cont=i-1; cont>=0; cont--)
{
cout <<

conv [cont];

salidaArchivo<<endl <<conv[cont];
}
cout <<"\n\n";

}
Pantallas de salida

También podría gustarte