Creando conversor de decimal a hexadecimal, octal, binario y vigesimal

Hola! en este post voy a mostrar código de cómo crear un conversor de unidades numéricas de decimal a otros formatos. Leer el código, copiarlo, probarlo, estudiarlo, y aprender con él.

Hexadecimal

En este caso los números van a ir del 0 al 9 y a partir de ahí de la A a la F. por ejemplo B sería el 11.

Por aquí dejo el código:

public class Hexadecimal {
    
    
    String convertir(int numero) {
        String intermedio = "";
        int numInt = 0;
        while (numero > 15) {
            numInt = numero % 16;
            intermedio = intermedio + traducir(numInt);
            numero = numero / 16;
        }
        intermedio = intermedio + traducir(numero);
        intermedio = revertir(intermedio);
        return intermedio;
    }

    String traducir(int numero) {
        String str = "";
        switch (numero) {
            case 0:
                str = "0";
                break;
            case 1:
                str = "1";
                break;
            case 2:
                str = "2";
                break;
            case 3:
                str = "3";
                break;
            case 4:
                str = "4";
                break;
            case 5:
                str = "5";
                break;
            case 6:
                str = "6";
                break;
            case 7:
                str = "7";
                break;
            case 8:
                str = "8";
                break;
            case 9:
                str = "9";
                break;
            case 10:
                str = "A";
                break;
            case 11:
                str = "B";
                break;
            case 12:
                str = "C";
                break;
            case 13:
                str = "D";
                break;
            case 14:
                str = "E";
                break;
            case 15:
                str = "F";
                break;

        }
        return str;
    }

    String revertir(String str) {
        String intermedio = "";
        for (int i = str.length() - 1; i >= 0; i--) {
            intermedio = intermedio + str.charAt(i);
        }
        return intermedio;

    }
}

Binario

En este sistema numérico sólo existen 2 números el cero y el uno, y el código queda así:

public class Binario {

    String convertir(int numero) {
        String intermedio = "";
        int numInt = 0;
        while (numero > 1) {
            numInt = numero % 2;
            intermedio = intermedio + numInt;
            numero = numero / 2;
        }
        intermedio = intermedio + numero;
        intermedio = revertir(intermedio);
        return intermedio;
    }

    String revertir(String str) {
        String intermedio = "";
        for (int i = str.length() - 1; i >= 0; i--) {
            intermedio = intermedio + str.charAt(i);
        }
        return intermedio;

    }
}

Octal

En este sistema numérico tiene un sistema del 0 al 7, después se pone un acarreo con otro 0. Por aquí dejo el código:

public class Octal {

    String convertir(int numero) {
        String intermedio = "";
        int numInt = 0;
        while (numero > 7) {
            numInt = numero % 8;
            intermedio = intermedio + numInt;
            numero = numero / 8;
        }
        intermedio = intermedio + numero;
        intermedio = revertir(intermedio);
        return intermedio;
    }

    String revertir(String str) {
        String intermedio = "";
        for (int i = str.length() - 1; i >= 0; i--) {
            intermedio = intermedio + str.charAt(i);
        }
        return intermedio;

    }
}

Vigesimal

Aquí hay 20 números, la verdad es un sistema numérico muy interesante, hacia adelante del 9 se empieza a contar con el abecedario hasta la J, por aquí dejo el código:

public class Vigesimal {

    String convertir(int numero) {
        String intermedio = "";
        int numInt = 0;
        while (numero > 19) {
            numInt = numero % 20;
            intermedio = intermedio + traducir(numInt);
            numero = numero / 20;
        }
        intermedio = intermedio +traducir( numero);
        intermedio = revertir(intermedio);
        return intermedio;
    }

    String traducir(int numero) {
        String str = "";
        switch (numero) {
            case 0:
                str = "0";
                break;
            case 1:
                str = "1";
                break;
            case 2:
                str = "2";
                break;
            case 3:
                str = "3";
                break;
            case 4:
                str = "4";
                break;
            case 5:
                str = "5";
                break;
            case 6:
                str = "6";
                break;
            case 7:
                str = "7";
                break;
            case 8:
                str = "8";
                break;
            case 9:
                str = "9";
                break;
            case 10:
                str = "A";
                break;
            case 11:
                str = "B";
                break;
            case 12:
                str = "C";
                break;
            case 13:
                str = "D";
                break;
            case 14:
                str = "E";
                break;
            case 15:
                str = "F";
                break;
            case 16:
                str = "G";
                break;
            case 17:
                str = "H";
                break;
            case 18:
                str = "I";
                break;
            case 19:
                str = "J";
                break;

        }
        return str;
    }

    String revertir(String str) {
        String intermedio = "";
        for (int i = str.length() - 1; i >= 0; i--) {
            intermedio = intermedio + str.charAt(i);
        }
        return intermedio;

    }
}

El Programa principal

En el Main deberemos crear un menú, en el cual se pida un número y se llame a las funciones necesarias de Java para hacer las conversiones. Por aquí dejo el código:

public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner sc = new Scanner(System.in);
        int numero = 0;
        String convertido;
        int eleccion = 0;
        //declaramos las clases
        Hexadecimal hx = new Hexadecimal();
        Binario bn = new Binario();
        Vigesimal vg = new Vigesimal();
        Octal oc = new Octal();

        while (eleccion != 4) {
            System.out.println("Dígame número a convertir");
            numero = sc.nextInt();

            System.out.println("El valor de " + numero + " en hexadecimal es " + hx.convertir(numero));
            System.out.println("El valor de " + numero + " en binario es " + bn.convertir(numero));
            System.out.println("El valor de " + numero + " en vigesimal es " + vg.convertir(numero));
            System.out.println("El valor de " + numero + " en octal es " + oc.convertir(numero));
            System.out.println("Elige cualquier numero para continuar");
            System.out.println("Elige 4 para salir");
            eleccion = sc.nextInt();

        }
    }

}

Conclusión:

Espero que os haya gustado mi código, si necesitas ayuda con Java puedes dejarmelo en la selección de contacto, estés en instituto, universidad, o simplemente quieres aprender de forma autodidacta. Sin más me despido, un saludo y hasta la próxima.

Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

error: Content is protected !!

Descubre más desde InfoGonzalez - Blog de formador e informático

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad