Dado un número octal como entrada, la tarea es convertir ese número en su número binario equivalente.
Ejemplo:
Input: Octal Number = 513 Output: Binary equivalent value is: 101001011 Explanation : Binary equivalent value of 5: 101 Binary equivalent value of 1: 001 Binary equivalent value of 3: 011
Sistema de numeración octal:
El sistema de numeración octal es un sistema de numeración posicional con una raíz o base de 8 y utiliza ocho dígitos distintos del 0 al 7.
Sistema numérico binario:
Un número binario es un número expresado en el sistema numérico binario de base 2, que utiliza solo dos símbolos: 0 y 1.
Tabla de conversión de octal a binario:
octales | Binario |
---|---|
0 | 000 |
1 | 001 |
2 | 010 |
3 | 011 |
4 | 100 |
5 | 101 |
6 | 110 |
7 | 111 |
Método 1: enfoque ingenuo
En este enfoque, la entrada del número octal se tomará como una string. Además, la string completa se repetirá carácter por carácter y para cada carácter (es decir, dígito octal), se evaluará su valor binario equivalente de acuerdo con la tabla de conversión de octal a binario anterior. El resultado de cada iteración se agregará en la string resultante y la combinación de todos los valores dará el número binario requerido. A continuación se muestra la implementación de este enfoque.
Java
// Java program to convert // Octal number to Binary class OctalToBinary { // function to convert octal number // to its binary equivalent value static String converter(String octalValue) { // integer variable to iterate // the input octal string int i = 0; // string to store the result String binaryValue = ""; // iterating the complete length // of octal string and assigning // the equivalent binary value // for each octal digit while (i < octalValue.length()) { // storing character according // to the number of iteration char c = octalValue.charAt((int)i); // switch case to check all // possible 8 conditions switch (c) { case '0': binaryValue += "000"; break; case '1': binaryValue += "001"; break; case '2': binaryValue += "010"; break; case '3': binaryValue += "011"; break; case '4': binaryValue += "100"; break; case '5': binaryValue += "101"; break; case '6': binaryValue += "110"; break; case '7': binaryValue += "111"; break; default: System.out.println( "\nInvalid Octal Digit " + octalValue.charAt((int)i)); break; } i++; } // returning the final result return binaryValue; } // Driver code public static void main(String args[]) { System.out.println("Octal to Binary Conversion\n"); // octal number which is to be converted String octalNumber = "315"; System.out.println("Octal number: " + octalNumber); // calling the converter method and // storing the result in a string variable String result = converter(octalNumber); System.out.println("Binary equivalent value is: " + result); } }
Octal to Binary Conversion Octal number: 315 Binary equivalent value is: 011001101
Método 2: enfoque matemático
Este método involucra cálculos matemáticos completos para obtener el resultado deseado. La entrada del número octal se tomará como un número entero. Además, primero se convierte a su valor equivalente decimal y luego de un número decimal a su equivalente binario mediante operaciones matemáticas. A continuación se muestra la implementación de este enfoque.
Java
// Java program to convert // Octal number to Binary public class OctalToBinary { // function to convert octal number // to its binary equivalent value public static int converter(int octalValue) { // declaring all variable // to store the intermediate results int i = 0; int decimalValue = 0; int binaryValue = 0; // converting octal number // into its decimal equivalent while (octalValue != 0) { decimalValue += (octalValue % 10) * Math.pow(8, i); ++i; octalValue /= 10; } i = 1; // converting generated decimal number // to its binary equivalent while (decimalValue != 0) { binaryValue += (decimalValue % 2) * i; decimalValue /= 2; i *= 10; } // returning the final result return binaryValue; } // Driver code public static void main(String[] args) { System.out.println("Octal to Binary Conversion\n"); // octal number which is to be converted int octalNumber = 315; System.out.println("Octal number: " + octalNumber); // calling the converter method and // storing the result in a string variable int result = converter(octalNumber); // printing the binary equivalent value System.out.println("Binary equivalent value is: " + result); } }
Octal to Binary Conversion Octal number: 315 Binary equivalent value is: 11001101
Método 3: Usar métodos java incorporados
Integer.parseInt() es una función incorporada en Java para analizar una string en un sistema numérico especificado por el valor de raíz (segundo argumento del método). En este enfoque, la entrada del número octal se tomará como una string. La string octal se analizará en un valor entero del sistema numérico octal. Además, el número octal se convertirá en su equivalente binario usando otro método incorporado Integer.toBinaryString() . El valor resultante también será del tipo de datos de string. A continuación se muestra la implementación.
Java
// Java program to convert // Octal number to Binary class OctalToBinary { // function to convert octal number // to its binary equivalent value public static String converter(String octalValue) { // parsing the string value // by following octal number system int octal = Integer.parseInt(octalValue, 8); // converting octal number to binary // and storing as a string String binaryValue = Integer.toBinaryString(octal); // returning the resultant string return binaryValue; } // Driver code public static void main(String args[]) { System.out.println("Octal to Binary Conversion\n"); // octal number which is to be converted String octalNumber = "315"; System.out.println("Octal number: " + octalNumber); // calling the converter method and // storing the result in a string variable String result = converter(octalNumber); // printing the binary equivalent value System.out.println("Binary equivalent value is: " + result); } }
Octal to Binary Conversion Octal number: 315 Binary equivalent value is: 11001101
Publicación traducida automáticamente
Artículo escrito por RISHU_MISHRA y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA