Convierta Hex a ASCII en Java

1. Información general

En este artículo rápido, haremos algunas conversiones simples entre los formatos Hex y ASCII.

En un caso de uso típico, el formato Hex se puede utilizar para escribir valores enteros muy grandes en una forma compacta. Por ejemplo, AD45 es más corto que su equivalente decimal 44357 y, a medida que los valores aumentan, la diferencia de longitud se vuelve aún más pronunciada.

2. ASCII a Hex

Ahora, veamos nuestras opciones para convertir valores ASCII a Hex:

  1. Convertir cadena en matriz de caracteres
  2. Lanzar cada char a un int
  3. Utilice Integer.toHexString () para convertirlo a Hex

Aquí hay un ejemplo rápido de cómo podemos lograr los pasos anteriores:

private static String asciiToHex(String asciiStr) { char[] chars = asciiStr.toCharArray(); StringBuilder hex = new StringBuilder(); for (char ch : chars) { hex.append(Integer.toHexString((int) ch)); } return hex.toString(); }

3. Formato hexadecimal a ASCII

De manera similar, hagamos una conversión de formato Hex a ASCII en tres pasos:

  1. Cortar el valor Hex en 2 carbonilla grupos
  2. Conviértalo a base 16 Integer usando Integer.parseInt (hex, 16) y cámbielo a char
  3. Agregar todos los caracteres en un StringBuilder

Veamos un ejemplo de cómo podemos lograr los pasos anteriores:

private static String hexToAscii(String hexStr) { StringBuilder output = new StringBuilder(""); for (int i = 0; i < hexStr.length(); i += 2) { String str = hexStr.substring(i, i + 2); output.append((char) Integer.parseInt(str, 16)); } return output.toString(); }

4. Prueba

Finalmente, usando estos métodos, hagamos una prueba rápida:

@Test public static void whenHexToAscii() { String asciiString = "www.baeldung.com"; String hexEquivalent = "7777772e6261656c64756e672e636f6d"; assertEquals(asciiString, hexToAscii(hexEquivalent)); } @Test public static void whenAsciiToHex() { String asciiString = "www.baeldung.com"; String hexEquivalent = "7777772e6261656c64756e672e636f6d"; assertEquals(hexEquivalent, asciiToHex(asciiString)); }

5. Conclusión

Para concluir, analizamos las formas más simples de convertir entre ASCII y Hex usando Java.

La implementación de todos estos ejemplos y fragmentos de código se puede encontrar en el proyecto github; simplemente importe el proyecto y ejecútelo como está.