Programa Java para convertir binario a octal

Un sistema numérico binario se compone de dos símbolos: 0 (ceros) y 1 (unos), que representan el estado bajo o apagado y alto o encendido , respectivamente, en la electrónica digital. Es principalmente un sistema numérico con base 2 y también se usa ampliamente en informática. Todos los datos se almacenan en símbolos binarios en computadoras que también se denominan bits. El sistema binario deriva su nombre del hecho de que se compone de solo dos símbolos. Un número binario también se puede considerar como una string de solo 0 y 1.

Un sistema de numeración octal consta de ocho dígitos que van del 0 al 7 . Deriva su nombre del hecho de que consta de ocho dígitos (de ahí Oct), que significa ocho. Es un sistema numérico de base 8 y se puede formular agrupando los bits en un número binario en grupos de tres y calculando el valor correspondiente de cada grupo como un solo dígito en el número octal resultante.

Ejemplo:

Input : 100100
Output: 44

Input : 1100001
Output : 141

En este artículo, vamos a explorar 2 métodos para convertir un número binario en un número octal. Estos métodos son los siguientes:

  • Usando el método integrado toOctalString() en Java
  • Convertir el número binario en un número decimal que luego se convierte en el número octal correspondiente.

Enfoque 1:

Usando este enfoque, primero convertimos un número binario en un entero y luego, usando el método integrado toOctalString() de Java, lo convertimos en una string de números octales. Luego, esta string se convierte nuevamente en un número entero.

Sintaxis:

public static String toOctalString(int num)

Parámetros: el método acepta un solo parámetro num de tipo entero que se requiere para convertirlo en una string.

Valor devuelto: la función devuelve una representación de string del argumento entero como un entero sin signo en base 8.

Algoritmo:

  1. Convierte el número binario en un número decimal.
  2. Convierta este número decimal en una string de números octales utilizando el método toOctalString().
  3. Convierta esta string nuevamente en un número entero.

Ejemplo:

Java

// Java program to convert binary to octal
  
class GFG {
  
    // method to convert binary to decimal
    int binaryToDecimal(long binary)
    {
        // variable to store the decimal number
        int decimalNumber = 0, i = 0;
  
        // loop to extract the digits of the
        // binary number
        while (binary > 0) {
  
            // multiplying each digit of binary
            // with increasing powers of 2 towards
            // left
            decimalNumber
                += Math.pow(2, i++) * (binary % 10);
  
            // dividing the binary by 10
            // to remove the last digit
            binary /= 10;
        }
  
        // returning the converted decimal number
        return decimalNumber;
    }
  
    // function to convert decimal to octal
    int decimalToOctal(long binary)
    {
  
        // variable to store the decimal number
        // returned by the binaryToDecimal()
        int decimalNumber = binaryToDecimal(binary);
  
        // using the toOctalString() to convert
        // Integer to String of Octal Number
        String octalString
            = Integer.toOctalString(decimalNumber);
  
        // converting the String of octal number
        // to an Integer
        int octalNumber = Integer.parseInt(octalString);
  
        // returning the octal number
        return octalNumber;
    }
  
    // Driver Code
    public static void main(String[] args)
    {
  
        // instantiating the class
        GFG ob = new GFG();
  
        // calling and printing the decimalToOCtal
        // method
        System.out.println("octal number:"+ob.decimalToOctal(100100));
    }
}
Producción

octal number:44

Enfoque 2:

Usando este enfoque, primero convertimos el número binario a un número decimal. Luego convertimos este número decimal en un número octal extrayendo continuamente el resto y dividiéndolo por 8.

Algoritmo:

  1. Convierte el número binario a un número decimal.
  2. Ahora, para este número decimal convertido, ejecute un ciclo while hasta que este número se convierta en 0.
  3. En cada iteración del bucle, obtenga el resto dividiendo el número por 8.
  4. Multiplique este resto con potencias crecientes de 10.
  5. Finalmente divide el número original por 8.

Ejemplo:

Java

// Java program to convert binary to octal
  
class GFG {
  
    // function to convert binary number
    // to decimal number
    int binaryToDecimal(long binary)
    {
  
        // variable to store the converted
        // decimal number
        int decimalNumber = 0, i = 0;
  
        // loop to convert binary to decimal
        while (binary > 0) {
  
            // extracting every digit of the
            // binary and multiplying with
            // increasing powers of 2
            decimalNumber
                += Math.pow(2, i++) * (binary % 10);
  
            // dividing the number by 10
            // to remove the last digit
            binary /= 10;
        }
  
        // returning the converted decimal
        // number
        return decimalNumber;
    }
  
    // function to convert decimal number
    // to octal
    int decimalToOctal(long binary)
    {
  
        // variable to store the octal number
        int octalNumber = 0, i = 0;
  
        // variable to store the output
        // returned by the binaryToDecimal()
        int decimalNumber = binaryToDecimal(binary);
  
        // loop to convert decimal to octal
        while (decimalNumber != 0) {
  
            // extracting the remainder on
            // multiplying by 8 and
            // dividing that with increasing
            // powers of 10
            octalNumber += (decimalNumber % 8)
                           * ((int)Math.pow(10, i++));
  
            // removing the last digit by
            // dividing by 8
            decimalNumber /= 8;
        }
  
        // returning the converted octal number
        return octalNumber;
    }
  
    // Driver Code
    public static void main(String[] args)
    {
  
        // instantiating the class
        GFG ob = new GFG();
  
        // calling and printing the
        // decimalToOctal() function
        System.out.println(ob.decimalToOctal(1001001));
    }
}
Producción

111

Publicación traducida automáticamente

Artículo escrito por ag01harshit y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *