¡Puntuación alta! Principios de programación de microcomputadoras (suma de números hexadecimales)
//Console16-digit junction.cpp: define el punto de entrada de la aplicación de consola.
//
#include "stdafx.h"
int ChangeSixToTen(fuente de caracteres)
{
if(fuente >= 'a' && fuente <='f')
return (1 fuente - 'a');
else if(fuente >= 'A ' && fuente <= 'F')
return (10 + fuente - 'A');
else if(fuente >= '0' && fuente <= '9' )
return (fuente - '0');
else
printf("¡Error de entrada!\n");
}
char ChangeTenToSix(int fuente)
{
if (fuente < 10)
return (fuente + '0 ') ;
else
return (fuente - 10 + 'A');
}
char NumAdd(char* Num1 ,char * Num2,char* resultado)
{
int len1 = strlen(Num1);
int len2 = strlen(Num2);
int lenresult = len1>len2?len1:len2;
int NumCarry =0,BeforeCarry =0;
int NumTemp =0;
resultado[ lenresult] = 0;
for(int i = 1;i!=lenresult+1;++i)
{
if(len1 < i )
NumTemp =0;
else NumTemp = ChangeSixToTen(Num1[len1 - i]);
if(len2 < i)
NumTemp += 0;
else NumTemp += ChangeSixToTen(Num2[len2 - i]);
if (NumTemp >15)
{
NumTemp -= 16;
BeforeCarry = 1;
}
else
BeforeCarry = 0 ;
resultado[lenresult - i] = ChangeTenToSix(NumTemp + NumCarry);
NumCarry = BeforeCarry;
}
return ChangeTenToSix (NumCarry );
}
int main(int argc, char* argv[])
{
char Addend[100 ], Summand[100],Sum[100];
char strTemp[100
];
resultado char;
do
{
puts("Ingrese el sumando: ");
gets(Addend);
puts("Ingrese el resumen:");
gets(Sumando);
printf("Resultado:" ) ;
if((resultado = NumAdd(Suma,Summand,Suma)) != '0')
putchar(resultado);
printf( " %s\n",Sum);
puts("Presione 1 para continuar, presione 2 para salir");
gets(strTemp);
} while(strTemp[0] != '2');
return 0;
}
Resultó ser más difícil de lo esperado. código para ti