buenas noches soy estudiante principiante de java y necesito una ayuda con este ejercicio ya que no se hacer la suma de hexadecimales lo intente con suma de 2 numeros int
Enunciado del ejercicio:
Diseñar un programa en java que permita sumar dos números hexadecimales.
Condiciones:
• Dos arreglos, uno de registros cuyos campos son LOS DIGITOS DE CADA NUMERO que se va a sumar, evite colocar el número completo en un solo registro de arreglo, los acarreos no son necesarios en los registros del arreglo (EL ACARREO NO ES UN CAMPO DEL REGISTRO). Cada campo puede tener igual o diferente longitud, es decir, los sumandos no tienen por que tener la misma cantidad de digitos. Los digitos del número hexadecimal que igualan o sobrepasan al 10 deben representarse con las letras en mayúsculas que están asociados a esos dígitos.
• Un arreglo sencillo que va a almacenar el resultado de la suma, en cada posición SE DEBE COLOCAR UN DIGITO DEL RESULTADO, evite colocar el resultado en una posición del arreglo.
• Usar puras instrucciones básicas y no funciones incorporadas ni declaraciones de datos en Hexadecimal
Codigo:
public class Main {
static class Registro{
public char dig1;
public char dig2;
Registro(char did1, char dig2){
this.dig1=dig1;
this.dig2=dig2;
}
}
static int convadig(char d){
int aux=0;
switch(d){
case '0': aux=0;
break;
case '1': aux=1;
break;
}
return (aux);
}
static char convacar(int d){
char aux='0';
switch(d){
case 0: aux='0';
break;
case 1: aux='1';
break;
}
return (aux);
}
static String resultado(String d1, String d2){
int c=0;
String aux="", aux1="";
int r;
for (int i = d1.length()-1;i>=0;i--){
r= convadig(d1.charAt(i)) + convadig(d2.charAt(i)) + c;
if (r>=2){
r=r-2;
c=1;
}
else
c=0;
aux=aux + convacar(r);
}
for (int k=0;k<d1.length();k++)
aux1= aux1 + aux.charAt(aux.length()-k-1);
if(c==1)
aux ='1' + aux1;
return(aux);
}
public static void main(String[] args) {
String num1="100110", num2="100100";
String res;
res=resultado(num1,num2);
System.out.println("La suma binaria de 100110 + 100100 es "+ res);
}
}