• Viernes 8 de Noviembre de 2024, 11:46

Autor Tema:  Hexadecimal A Decimal  (Leído 3492 veces)

josmicr

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Hexadecimal A Decimal
« en: Domingo 19 de Agosto de 2007, 19:52 »
0
Alguien que tenga en codigo java algún algoritmo para convertir de hexadecimal a decimal! :comp:

adn7negro

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Hexadecimal A Decimal
« Respuesta #1 en: Viernes 11 de Julio de 2008, 07:58 »
0
/* EZEQUIEL 281176*/

public void hexadecimalDecimal(int num){
        double deci =0;
        int x = 0;
        int acum = -1;
        int tam=0;
        String cadena = "";
        int []vect = new int[99];
     
        System.out.println("DIGITE EL NUMERO:   ");
        do{
            acum++;
            try {
               
                vect[acum] = System.in.read();
            } catch (IOException ex) {
               
            }
         
        }while (vect[acum] != 10); //El 10 es el ENTER
       
 
        //Almacena cada caracter del vector en cadena, concatenando
        for (int i=0;i<vect.length-1;i++){
         
            if (vect == 10)
                i = vect.length-1;
               else if (vect==97)
                        vect=65;
                   else if (vect==98)
                            vect=66;
                        else if (vect==99)
                                 vect=67;
                            else if (vect==100)
                                     vect=68;
                                else if (vect==101)
                                         vect=69;
                                    else if (vect==102)
                                             vect=70;
           
            cadena = cadena+(char)vect;
           
        }
       
        System.out.println("El numero HEXADECIMAL digitado es    ");
        System.out.println(cadena); // Imprime cadena
       

       
     
        // Se imprime los valores ascii de los carcateres del vector
        for (int i=0;i<vect.length-1;i++){
            if (vect== 10)
                break;
                else if(vect==48)
                        vect=0;
                    else if (vect==49)
                             vect=1;
                        else if (vect==50)
                                 vect=2;
                            else if (vect==51)
                                     vect=3;
                                else if (vect==52)
                                         vect=4;
                                    else if (vect==53)
                                             vect=5;
                                        else if (vect==54)
                                                 vect=6;
                                            else if (vect==55)
                                                     vect=7;
                                                else if (vect==56)
                                                         vect=8;
                                                    else if (vect==57)
                                                             vect=9;
                                                        else if (vect==65)
                                                                 vect=10;
                                                            else if (vect==66)
                                                                     vect=11;
                                                                else if (vect==67)
                                                                         vect=12;
                                                                    else if (vect==68)
                                                                             vect=13;
                                                                        else if (vect==69)
                                                                                 vect=14;
                                                                            else if (vect==70)
                                                                                     vect=15;
                                                                                else if (vect==97)
                                                                                         vect=10;
                                                                                    else if (vect==98)
                                                                                             vect=11;
                                                                                        else if (vect==99)
                                                                                                 vect=12;
                                                                                            else if (vect==100)
                                                                                                     vect=13;
                                                                                                else if (vect==101)
                                                                                                         vect=14;
                                                                                                    else if (vect==102)
                                                                                                             vect=15;
           
             tam++;  
        }
   
         for (int i=tam-1; i>=0;i--){
               if(vect < 16 && vect >=0){
                deci = deci + vect *(Math.pow(16, x));
          x++;
              }
            }
           
            System.out.print("n ");
            System.out.print("EL NUMERO DECIMAL ES:  "+deci+ ", ");
            System.out.print("n ");
    }

adn7negro

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Hexadecimal A Decimal
« Respuesta #2 en: Viernes 11 de Julio de 2008, 08:10 »
0
Este código tiene un gran problema...Solo acepta Integer, por lo que si vas a ingresar 'A' tienes que hacerlo introduciendo su valor '10', es muy incómo y defectuoso. Toma valores de uno en uno...
package proyectoconversiones;
/*  EZEQUIEL 281176*/

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class HexadecimalDecimal {
    public static void main (String []args){
         BufferedReader entrada = new BufferedReader (new InputStreamReader (System.in));
        //Declaramos el vector
         int w = 0;
         int numero =0, c =0;
         double deci = 0;
         int []vect = new int [12];
     
       
        //Llenamos el vector
        System.out.println("Llene el Vector");
       
        for (int i =0; i<vect.length;i++){
            System.out.println("Pulse el digito Hexadecimal  " + i + "  "); //+ 1 + Concatenar una variable
            try{
             
                numero= Integer.parseInt(entrada.readLine());
                     
                         
            }catch (Exception ex){
                System.out.println("Se produjo un ERROR");
          i--;
         
            }
           
            if (numero>=0&&numero<16){
                vect[c] = numero;
                c++;
            }
           
            else {
               System.out.println("ERROR: Digite solo entre 0 y 15, ...");
             i--;
            }
            if (numero==22){
                break;
            }
             
           
     
        }
    //imprimimos numero Hexadecimal
            System.out.println("Usted digitó el Número  Hexadecimal:  ");
           
         
            System.out.print(" n ");
           
            for (int i =0; i<c;i++){
       
                System.out.print(vect + ", ");
             
             
            }
           
            for (int i =c-1; i>=0;i--){
         
               
                deci = deci + vect *(Math.pow(16, w));
          w++;
            }
           
            System.out.print("nn ");
            System.out.print("Y su correspondiente numero decimal es:  "+deci+ ", ");
           
       
            System.exit(0);
      }
}

adn7negro

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Hexadecimal A Decimal
« Respuesta #3 en: Sábado 12 de Julio de 2008, 09:08 »
0
Más facil aún, pero creo que para un nivel básico hay que construir paso a paso sus propias soluciones (digo, no utilizar lo que ya biene predeterminado). Pero igual, espero que les sirva este ejemplo...
Saludos!!!



package conversiones;
/* EZEQUIEL 281176 */
import java.io.*;

public class  HexadecimalToDecimal{
  public static void main(String[] args) {
     
    BufferedReader entrada = new BufferedReader(new InputStreamReader(System.in));
   
    String numero = " ";
    int decimal = 0;
   
    System.out.println("Digite el numero Hexadecimal: ");
    try{
     numero = entrada.readLine();
   
   
    }catch (IOException ex) {System.out.println("Error: Digite solo numeros Hexadecimales...");
   
               
            }catch (NumberFormatException ex) {System.out.println("Error: Digite solo numeros Hexadecimales...");
   
        }
   
     decimal = Integer.parseInt(numero,16);
    System.out.println("El numero decimal es: "+ decimal);
   
    }
}

adn7negro

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: Hexadecimal A Decimal
« Respuesta #4 en: Jueves 19 de Noviembre de 2009, 20:38 »
0
LOL...