Red de conocimiento informático - Consumibles informáticos - ¡Puntuación alta! Principios de programación de microcomputadoras (suma de números hexadecimales)

¡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