Converti Hex in ASCII in Java

1. Panoramica

In questo rapido articolo, faremo alcune semplici conversioni tra i formati Hex e ASCII.

In un tipico caso d'uso, il formato esadecimale può essere utilizzato per annotare valori interi molto grandi in una forma compatta. Ad esempio, AD45 è più corto del suo equivalente decimale 44357 e all'aumentare dei valori la differenza di lunghezza diventa ancora più pronunciata.

2. Da ASCII a Hex

Ora, diamo un'occhiata alle nostre opzioni per convertire i valori ASCII in Hex:

  1. Converti String in char array
  2. Trasmetti ogni carattere a un int
  3. Usa Integer.toHexString () per convertirlo in Hex

Ecco un rapido esempio di come possiamo ottenere i passaggi precedenti:

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 esadecimale in ASCII

Allo stesso modo, eseguiamo una conversione da Hex a ASCII in tre passaggi:

  1. Taglia il valore esadecimale in 2 gruppi di caratteri
  2. Convertirlo in base 16 Integer utilizzando Integer.parseInt (hex, 16) e cast in char
  3. Aggiungi tutti i caratteri in un StringBuilder

Diamo un'occhiata a un esempio di come possiamo ottenere i passaggi precedenti:

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. Prova

Infine, utilizzando questi metodi, facciamo un rapido test:

@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. conclusione

Per concludere, abbiamo esaminato i modi più semplici per convertire tra ASCII e Hex utilizzando Java.

L'implementazione di tutti questi esempi e frammenti di codice può essere trovata nel progetto github: è sufficiente importare il progetto ed eseguirlo così com'è.