Dada la cadena de valor hexadecimal como entrada, la tarea es convertir la cadena de valor hexadecimal dada en su cadena de formato ASCII correspondiente.
Ejemplos:
Aporte: 6765656b73
Producción: frikis
Aporte: 6176656e67657273
Producción: vengadores
El sistema de numeración hexadecimal o simplemente hexadecimal utiliza el sistema Base de 16. Al ser un sistema Base-16, hay 16 símbolos de dígitos posibles. El número hexadecimal utiliza 16 símbolos {0, 1, 2, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} para representar todos los números. Aquí, (A, B, C, D, E, F) representa (10, 11, 12, 13, 14, 15).
ASCII significa Código Estándar Americano para Intercambio de Información . ASCII es un estándar que asigna letras, números y otros caracteres dentro de las 256 ranuras disponibles en el código de 8 bits. Por ejemplo, el carácter h minúsculo (Char) tiene un valor decimal de 104, que es 01101000 en binario y 68 en hexadecimal.
Algoritmo:
- Inicialice la cadena ascii final como vacía.
- Extraiga los dos primeros caracteres de la cadena hexadecimal tomada como entrada.
- Conviértelo en un entero de base 16.
- Transmita este número entero a un carácter que sea ASCII equivalente a 2 caracteres hexadecimales.
- Agregue este carácter a la cadena final.
- Extraiga los dos caracteres siguientes de la cadena hexadecimal y vaya al paso 3.
- Siga estos pasos para extraer todos los caracteres de una cadena hexadecimal.

Implementación:
C++
// C++ program to convert hexadecimal> // string to ASCII format string> #include> using> namespace> std;> string hexToASCII(string hex)> {> >// initialize the ASCII code string as empty.> >string ascii =>''>;> >for> (>size_t> i = 0; i { // extract two characters from hex string string part = hex.substr(i, 2); // change it into base 16 and // typecast as the character char ch = stoul(part, nullptr, 16); // add this char to final ASCII string ascii += ch; } return ascii; } // Driver Code int main() { // print the ASCII string. cout << hexToASCII('6765656b73') << endl; return 0; } // This code is contributed by // sanjeev2552> |
>
comando arp
>
Java
// Java program to convert hexadecimal> // string to ASCII format string> import> java.util.Scanner;> public> class> HexadecimalToASCII {> >public> static> String hexToASCII(String hex)> >{> >// initialize the ASCII code string as empty.> >String ascii =>''>;> >for> (>int> i =>0>; i 2) { // extract two characters from hex string String part = hex.substring(i, i + 2); // change it into base 16 and typecast as the character char ch = (char)Integer.parseInt(part, 16); // add this char to final ASCII string ascii = ascii + ch; } return ascii; } public static void main(String[] args) { // print the ASCII string. System.out.println(hexToASCII('6765656b73')); } }> |
>
>
Python3
# Python3 program to convert hexadecimal> # string to ASCII format string> def> hexToASCII(hexx):> ># initialize the ASCII code string as empty.> >ascii>=> ''> >for> i>in> range>(>0>,>len>(hexx),>2>):> ># extract two characters from hex string> >part>=> hexx[i : i>+> 2>]> ># change it into base 16 and> ># typecast as the character> >ch>=> chr>(>int>(part,>16>))> ># add this char to final ASCII string> >ascii>+>=> ch> > >return> ascii> # Driver Code> if> __name__>=>=> '__main__'>:> ># print the ASCII string.> >print>(hexToASCII(>'6765656b73'>))> # This code is contributed by> # sanjeev2552> |
>
>
C#
// C# program to convert hexadecimal> // string to ASCII format string> using> System;> class> GFG> {> >public> static> String hexToASCII(String hex)> >{> >// initialize the ASCII code string as empty.> >String ascii =>''>;> >for> (>int> i = 0; i { // extract two characters from hex string String part = hex.Substring(i, 2); // change it into base 16 and // typecast as the character char ch = (char)Convert.ToInt32(part, 16);; // add this char to final ASCII string ascii = ascii + ch; } return ascii; } // Driver Code public static void Main(String[] args) { // print the ASCII string. Console.WriteLine(hexToASCII('6765656b73')); } } // This code is contributed by PrinciRaj1992> |
>
>
JavaScript
> >// JavaScript program to convert hexadecimal> >// string to ASCII format string> >function> hexToASCII(hex) {> >// initialize the ASCII code string as empty.> >var> ascii =>''>;> >for> (>var> i = 0; i // extract two characters from hex string var part = hex.substring(i, i + 2); // change it into base 16 and // typecast as the character var ch = String.fromCharCode(parseInt(part, 16)); // add this char to final ASCII string ascii = ascii + ch; } return ascii; } // Driver Code // print the ASCII string. document.write(hexToASCII('6765656b73'));> |
natasha dalal
>
>Producción
geeks>
Complejidad del tiempo : O(N), donde N es la longitud de la cadena dada
Espacio auxiliar : EN)
Método 2: uso de operaciones bit a bit:
Este enfoque consiste en utilizar operaciones bit a bit para convertir directamente la cadena hexadecimal en una cadena ASCII. En este enfoque, comenzaríamos convirtiendo la cadena hexadecimal en una serie de bytes. Podemos hacer esto iterando a través de la cadena y convirtiendo cada par de dígitos hexadecimales en un byte. Una vez que tenemos los bytes, podemos usar operaciones bit a bit para convertirlos en caracteres en la cadena ASCII.
En esta implementación, utilizamos un flujo de cadenas para construir la cadena ASCII. Repetimos la cadena hexadecimal, convirtiendo cada par de dígitos hexadecimales en un byte usando stoi. Luego, agregamos el byte al flujo de cadenas. Finalmente, devolvemos el contenido del stringstream como cadena ASCII.
Aquí está el código de este enfoque:
C++
tutorial jfx java
#include> using> namespace> std;> string hexToASCII(std::string hex) {> >stringstream ss;> >for> (>size_t> i = 0; i unsigned char byte =stoi(hex.substr(i, 2), nullptr, 16); ss << byte; } return ss.str(); } int main() { string hexString = '6765656b73'; string asciiString = hexToASCII(hexString); cout << asciiString << endl; return 0; }> |
>
>
Java
import> java.util.*;> public> class> HexToASCII {> >public> static> String hexToASCII(String hex) {> >StringBuilder sb =>new> StringBuilder();> >for> (>int> i =>0>; i 2) { String str = hex.substring(i, i + 2); char ch = (char) Integer.parseInt(str, 16); sb.append(ch); } return sb.toString(); } public static void main(String[] args) { String hexString = '6765656b73'; String asciiString = hexToASCII(hexString); System.out.println(asciiString); } }> |
>
>
Python3
def> hex_to_ascii(hex_str):> >ascii_str>=> ''> >for> i>in> range>(>0>,>len>(hex_str),>2>):> >byte>=> int>(hex_str[i:i>+>2>],>16>)> >ascii_str>+>=> chr>(byte)> >return> ascii_str> # Driver code> hex_string>=> '6765656b73'> ascii_string>=> hex_to_ascii(hex_string)> print>(ascii_string)> |
>
ejemplo de lista en java
>
C#
using> System;> using> System.Text;> public> class> Program> {> >public> static> string> HexToASCII(>string> hex)> >{> >StringBuilder sb =>new> StringBuilder();> >for> (>int> i = 0; i { byte b = Convert.ToByte(hex.Substring(i, 2), 16); sb.Append((char)b); } return sb.ToString(); } public static void Main() { string hexString = '6765656b73'; string asciiString = HexToASCII(hexString); Console.WriteLine(asciiString); } } // This code is contributed by Prajwal Kandekar> |
>
>
JavaScript
// Javascript code addition> function> hexToASCII(hex) {> >let sb =>''>;> >for> (let i = 0; i let str = hex.substring(i, i + 2); let ch = String.fromCharCode(parseInt(str, 16)); sb += ch; } return sb; } let hexString = '6765656b73'; let asciiString = hexToASCII(hexString); console.log(asciiString); // The code is contributed by Nidhi goel.> |
>
>
Producción
geeks>
Complejidad del tiempo: O (n), donde N es la longitud de la cadena dada
Espacio auxiliar: O(n)