Foro de elhacker.net

Programación => Java => Mensaje iniciado por: SYAT19 en 17 Mayo 2015, 04:22 am



Título: Arreglo de suma de hexadecimales (ayuda con este ejercicio)
Publicado por: SYAT19 en 17 Mayo 2015, 04:22 am
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);
    }
   
}




Título: Re: Arreglo de suma de hexadecimales (ayuda con este ejercicio)
Publicado por: daryo en 17 Mayo 2015, 21:26 pm
mi idea es
primero se convierten los hexadecimales a numeros decimales despues los sumas normalmente y por ultimo los vuelves a pasar a hexadecimal