Cambio de hexadecimal a decimal

Iván Ena Belloc

//Programa que pasa de base hexadecimal (máximo 8 dígitos) a base decimal .

#include <string.h>
#include <iostream>
#include <math.h>
using namespace std;

int main ()
{
char cadena_entrada[10];
int i, num_digitos, n_hexadecimal, l_hexadecimal;
unsigned long num_decimal;
bool hexadecimal;
hexadecimal=false;
while (hexadecimal==false)
{
cout << “Introduce un numero en base 16 (maximo 8 digitos), con las letras en mayuscula: ” << endl;
cin >> cadena_entrada;
num_digitos = strlen(cadena_entrada);
while (num_digitos>8)
{
cout << “Numero de digitos excesivo. Introduce un numero en base 16 (maximo 8 digitos), con las letras en mayuscula: ” << endl;
cin >> cadena_entrada;
num_digitos = strlen(cadena_entrada);
}
for (i=0; i<num_digitos;i++)
{
if ((cadena_entrada[i]>=’0′ && cadena_entrada[i]<=’9′)||(cadena_entrada[i]>=’A’ && cadena_entrada[i]<=’F’))
hexadecimal=true;
else
{
hexadecimal=false;
cout << “El numero introducido no pertenece al sistema hexadecimal” << endl;
break;
}
}
}
num_decimal=0;
for (i=num_digitos-1; i>=0;i–)
{
if (cadena_entrada[i]>=’0′ && cadena_entrada[i]<=’9′)
{
n_hexadecimal=int(cadena_entrada[i])-int(‘0′);
num_decimal=num_decimal+n_hexadecimal*pow(16,num_digitos-1-i);
}
else if (cadena_entrada[i]>=’A’ && cadena_entrada[i]<=’F’)
{
l_hexadecimal=10+int(cadena_entrada[i])-int(‘A’);
num_decimal=num_decimal+l_hexadecimal*pow(16,num_digitos-1-i);
}
}
cout << “El numero decimal resultante es ” << num_decimal << endl;
return 0;
}

Anuncios

Acerca de programacion1z

Curso de introducción a la programación en C
Esta entrada fue publicada en Informática e Internet. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s