Dado un número octal, la tarea es convertirlo en un número hexadecimal.
Ejemplos:
Input: 47 Output: 27 Explanation: Decimal value of 47 is = (7 * 1) + (4 * 8) = 39 Now, convert this number to hexadecimal 39/16 -> quotient = 2, remainder = 7 2/16 -> quotient = 0, remainder = 2 So, the equivalent hexadecimal number is = 27 Input: 235 Output: 9d
Enfoque:
un número octal o oct para abreviar es el número de base 8 y usa los dígitos del 0 al 7. Los números octales se pueden hacer a partir de números binarios agrupando dígitos binarios consecutivos en grupos de tres (comenzando desde la derecha).
Un número hexadecimal es un sistema de numeración posicional con una raíz o base de 16 y utiliza dieciséis símbolos distintos. Puede ser una combinación de letras y números. Utiliza números del 0 al 9 y letras de la A a la F.
Pasos de conversión:
La forma más sencilla es convertir el número octal en decimal, luego el decimal en forma hexadecimal.
- Escribe las potencias de 8 (1, 8, 64, 512, 4096, etc.) al lado de los dígitos octales de abajo hacia arriba.
- Multiplica cada dígito por su potencia.
- Suma las respuestas. Esta es la solución decimal.
- Divide el número decimal entre 16.
- Obtenga el cociente entero para la próxima iteración (si el número no se divide por igual entre 16, entonces redondee el resultado al número entero más cercano).
- Tome nota del resto, debe estar entre 0 y 15.
- Repite los pasos desde el paso 4 hasta que el cociente sea igual a 0.
- Escribe todos los restos, de abajo hacia arriba.
- Convierta cualquier residuo mayor que 9 en letras hexadecimales. Esta es la solución hexadecimal.
Por ejemplo , si el número octal dado es 5123:
Dígito | Energía | Multiplicación |
---|---|---|
5 | 512 | 2560 |
1 | 64 | 64 |
2 | 8 | dieciséis |
3 | 1 | 3 |
Entonces el número decimal (2560 + 64 + 16 + 3) es: 2643
División | Cociente | Resto |
---|---|---|
2643/16 | 165 | 3 |
165/16 | 10 | 5 |
10/16 | 0 | 10 a) |
Finalmente, el número hexadecimal es: a53
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to convert Octal // to Hexadecimal #include<bits/stdc++.h> using namespace std; // Function to convert octal to decimal int octalToDecimal(int n) { int num = n; int dec_value = 0; // Initializing base value // to 1, i.e 8^0 int base = 1; int temp = num; while (temp) { // Extracting last digit int last_digit = temp % 10; temp = temp / 10; // Multiplying last digit with // appropriate base value and // adding it to dec_value dec_value += last_digit * base; base = base * 8; } return dec_value; } // Function to convert decimal // to hexadecimal string decToHexa(int n) { // char array to store // hexadecimal number char hexaDeciNum[100]; // counter for hexadecimal // number array int i = 0; while(n != 0) { // Temporary variable to // store remainder int temp = 0; // Storing remainder in // temp variable. temp = n % 16; // Check if temp < 10 if (temp < 10) { hexaDeciNum[i] = temp + 48; i++; } else { hexaDeciNum[i] = temp + 87; i++; } n = n / 16; } string ans = ""; // Printing hexadecimal number array // in reverse order for(int j = i - 1; j >= 0; j--) { ans += hexaDeciNum[j]; } return ans; } // Driver Code int main() { string hexnum; int decnum, octnum; // Taking 5123 as an example of // Octal Number. octnum = 5123; // Convert Octal to Decimal decnum = octalToDecimal(octnum); // Convert Decimal to Hexadecimal hexnum = decToHexa(decnum); cout << "Equivalent Hexadecimal Value = " << hexnum << endl; } // This code is contributed by pratham76
Java
// Java Program to Convert Octal // to Hexadecimal import java.util.Scanner; public class JavaProgram { public static void main(String args[]) { String octnum, hexnum; int decnum; Scanner scan = new Scanner(System.in); // Taking 5123 as an example of // Octal Number. octnum = "5123"; // Convert Octal to Decimal decnum = Integer.parseInt(octnum, 8); // Convert Decimal to Hexadecimal hexnum = Integer.toHexString(decnum); System.out.print("Equivalent Hexadecimal Value = " + hexnum); } }
Python3
# Python3 program to convert octal # to hexadecimal # Taking 5123 as an example of # octal number octnum = "5123" # Convert octal to decimal decnum = int(octnum, 8) # Convert decimal to hexadecimal hexadecimal = hex(decnum).replace("0x", "") # Printing the hexadecimal value print("Equivalent Hexadecimal Value =", hexadecimal) # This code is contributed by virusbuddah_
C#
// C# Program to Convert Octal // to Hexadecimal using System; class GFG{ // Function to convert octal // to decimal static int octalToDecimal(int n) { int num = n; int dec_value = 0; // Initializing base value // to 1, i.e 8^0 int b_ase = 1; int temp = num; while (temp > 0) { // Extracting last digit int last_digit = temp % 10; temp = temp / 10; // Multiplying last digit // with appropriate base // value and adding it to // dec_value dec_value += last_digit * b_ase; b_ase = b_ase * 8; } return dec_value; } // Function to convert decimal // to hexadecimal static string decToHexa(int n) { // char array to store // hexadecimal number char []hexaDeciNum = new char[100]; // counter for hexadecimal // number array int i = 0; string ans = ""; while(n != 0) { // temporary variable to // store remainder int temp = 0; // storing remainder // in temp variable. temp = n % 16; // check if temp < 10 if(temp < 10) { hexaDeciNum[i] = (char)(temp + 48); i++; } else { hexaDeciNum[i] = (char)(temp + 87); i++; } n = n / 16; } for(int j = i - 1; j >= 0; j--) { ans += hexaDeciNum[j]; } return ans; } // Driver code public static void Main(string []args) { string octnum, hexnum; int decnum; // Taking 5123 as an // example of Octal Number. octnum = "5123"; // Convert Octal to Decimal decnum = octalToDecimal(Int32.Parse(octnum)); // Convert Decimal to Hexadecimal hexnum = decToHexa(decnum); Console.Write("Equivalent Hexadecimal Value = " + hexnum); } } // This code is contributed by rutvik_56
Javascript
// JavaScript program to convert Octal // to Hexadecimal // Function to convert octal to decimal function octalToDecimal( n) { var num = n; var dec_value = 0; // Initializing base value // to 1, i.e 8^0 var base = 1; var temp = num; while (temp > 0) { // Extracting last digit var last_digit = temp % 10; temp = Math.floor(temp / 10); // Multiplying last digit with // appropriate base value and // adding it to dec_value dec_value += last_digit * base; base = base * 8; } return dec_value; } // Function to convert decimal // to hexadecimal function decToHexa( n) { // char array to store // hexadecimal number var hexaDeciNum = new Array(100); // counter for hexadecimal // number array var i = 0; while(n != 0) { // Temporary variable to // store remainder var temp = 0; // Storing remainder in // temp variable. temp = n % 16; // Check if temp < 10 if (temp < 10) { hexaDeciNum[i] = temp + 48; i++; } else { hexaDeciNum[i] = temp + 87; i++; } n = Math.floor(n / 16); } var ans = ""; // Printing hexadecimal number array // in reverse order for(var j = i - 1; j >= 0; j--) { ans += String.fromCharCode(hexaDeciNum[j]); } return ans; } // Driver Code var hexnum; var decnum, octnum; // Taking 5123 as an example of // Octal Number. octnum = 5123; // Convert Octal to Decimal decnum = octalToDecimal(octnum); // Convert Decimal to Hexadecimal hexnum = decToHexa(decnum); console.log("Equivalent Hexadecimal Value = " + hexnum); // This code is contributed by phasing17
Equivalent Hexadecimal Value = a53