You are on page 1of 4

// programa c.cpp: define el punto de entrada de la aplicacin de consola.

//
//CALCULADORA HEXADECIMAL
#include
#include
#include
#include

"stdafx.h"
"string.h"
"stdlib.h"
"math.h"

int _tmain(int argc, _TCHAR* argv[])


{
char i, j, longitud1, numero1[300], temporal, numero2[300], numerohexade
cimal[300];
int longitud2 = 0, sumatoria1 = 0, sumatoria2 = 0;
int operaciones, resultado, dividendo, divisor = 16, residuo;
printf("Ingrese el primer numero hexadecimal \n");
gets_s(numero1);
longitud1 = strlen(numero1);
for (i = 0, j = longitud1 - 1; i<longitud1 / 2; i++, j--)
{
temporal = numero1[i];
numero1[i] = numero1[j];
numero1[j] = temporal;
}
i = 0;
while (i<longitud1)
{
if (numero1[i] == 'A')
{
sumatoria1 += (pow(16.0, i) * 10);
}
else
{
if (numero1[i] == 'B')
{
sumatoria1 += (pow(16.0, i) * 11);
}
else
{
if (numero1[i] == 'C')
{
sumatoria1 += (pow(16.0, i) * 12);
}
else
{
if (numero1[i] == 'D')
{
sumatoria1 += (pow(16.0, i) * 13
);
}
else
{
if (numero1[i] == 'E')
{
sumatoria1 += (pow(16.0,
i) * 14);
}
else
{
if (numero1[i] == 'F')

{
sumatoria1 += (p
ow(16.0, i) * 15);
}
else
{
sumatoria1 += (p
ow(16.0, i) * (numero1[i] - 48));
}
}
}
}
}
}
i = i + 1;
}
printf("\nIngrese el segundo numero hexadecimal\n");
gets_s(numero2);
longitud2 = strlen(numero2);
for (i = 0, j = longitud2 - 1; i<longitud2 / 2; i++, j--)
{
temporal = numero2[i];
numero2[i] = numero2[j];
numero2[j] = temporal;
}
j = 0;
while (j<longitud2)
{
if (numero2[j] == 'A')
{
sumatoria2 += (pow(16.0, j) * 10);
}
else
{
if (numero2[j] == 'B')
{
sumatoria2 += (pow(16.0, j) * 11);
}
else
{
if (numero2[j] == 'C')
{
sumatoria2 += (pow(16.0, j) * 12);
}
else
{
if (numero2[j] == 'D')
{
sumatoria2 += (pow(16.0, j) * 13
);
}
else
{
if (numero2[j] == 'E')
{
sumatoria2 += (pow(16.0,
j) * 14);
}
else
{

if (numero2[j] == 'F')
{
sumatoria2 += (p
ow(16.0, j) * 15);
}
else
{
sumatoria2 += (p
ow(16.0, j) * (numero2[j] - 48));
}
}
}
}
}
}
j = j + 1;
}
printf("operaciones 1. suma 2. Resta 3. Multiplicacion 4. Division 5.
Salir \n");
scanf_s("%d", &operaciones);
while (operaciones != 5)
{
switch (operaciones)
{
case 1:
resultado = sumatoria1 + sumatoria2;
break;
case 2:
resultado = sumatoria1 - sumatoria2;
break;
case 3:
resultado = sumatoria1*sumatoria2;
break;
case 4:
if (sumatoria2 == 0)
{
resultado = 99999;
}
else
{
resultado = (sumatoria1 / sumatoria2);
}
break;
}
if (resultado < 0)
{
printf("No existen los numeros hexadecimales negativos")
;
}
else
{
if (resultado == 99999)
{
printf("La division para cero no existe");
}
else
{
printf("El resultado de la operacion que usted e
scogio en decimal es %d", resultado);
dividendo = resultado;

i = 1;
while (dividendo != 0)
{
residuo = dividendo % divisor;
if (residuo<10)
{
residuo = residuo + 48;
}
else
{
residuo = residuo + 55;
}
numerohexadecimal[i++] = residuo;
dividendo = dividendo / divisor;
}
printf("\n El resultado de la operacion %d en he
xadecimal es: ", operaciones);
for (j = i - 1; j > 0; j--)
{
printf(" %c", numerohexadecimal[j]);
}
}
}
printf("\n operaciones 1. suma 2. Resta 3.Multiplicacion 4.Di
vision 5.Salir \n");
scanf_s("%d", &operaciones);
}
system("PAUSE");
return 0;
}

You might also like