Convertir string de valor hexadecimal a string de valor ASCII

Dada la string de valor hexadecimal como entrada, la tarea es convertir la string de valor hexadecimal dada en su string de formato ASCII correspondiente.

Ejemplos: 

Input: 6765656b73
Output: geeks

Input:  6176656e67657273
Output: avengers 

El sistema de numeración «Hexadecimal» o simplemente «Hex» utiliza el sistema de base de 16. Al ser un sistema Base-16, hay 16 símbolos de dígitos posibles. El número hexadecimal usa 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 Estadounidense para el 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úscula (Char) tiene un valor decimal de 104, que es «01101000» en binario y «68» en hexadecimal. 
Para obtener más valores ASCII, consulte la TABLA ASCII. 

Algoritmo:  

  1. Inicialice la string ascii final como vacía.
  2. Extraiga los primeros dos caracteres de la string hexadecimal tomada como entrada.
  3. Conviértalo en base 16 entero.
  4. Convierta este número entero en carácter, que es el equivalente ASCII de 2 caracteres hexadecimales.
  5. Agregue este carácter a la string final.
  6. Extraiga los siguientes dos caracteres de la string hexadecimal y vaya al paso 3.
  7. Siga estos pasos para extraer todos los caracteres de una string hexadecimal.

C++

// C++ program to convert hexadecimal
// string to ASCII format string
#include <bits/stdc++.h>
using namespace std;
 
string hexToASCII(string hex)
{
    // initialize the ASCII code string as empty.
    string ascii = "";
    for (size_t i = 0; i < hex.length(); i += 2)
    {
        // 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

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 < hex.length(); 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 < hex.Length; i += 2)
        {
 
            // 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

<script>
      // 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 < hex.length; i += 2) {
          // 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"));
    </script>

Producción: 
 

geeks

Publicación traducida automáticamente

Artículo escrito por AmanSingh2210 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 *