Preveďte Hex na ASCII v Jave

1. Prehľad

V tomto rýchlom článku urobíme niekoľko jednoduchých konverzií medzi formátmi Hex a ASCII.

V typickom prípade použitia je možné formát Hex použiť na zapísanie veľmi veľkých celočíselných hodnôt v kompaktnom formáte. Napríklad AD45 je kratší ako jeho desatinný ekvivalent 44357 a so zvyšovaním hodnôt sa rozdiel v dĺžke stáva ešte výraznejším.

2. ASCII až Hex

Teraz sa pozrime na naše možnosti prevodu ASCII hodnôt na Hex:

  1. Preveďte reťazec na char pole
  2. Obsadiť každý char do an int
  3. Použite Integer.toHexString () previesť na Hex

Tu je rýchly príklad, ako môžeme dosiahnuť vyššie uvedené kroky:

private static String asciiToHex (String asciiStr) {char [] chars = asciiStr.toCharArray (); StringBuilder hex = nový StringBuilder (); pre (char ch: chars) {hex.append (Integer.toHexString ((int) ch)); } návrat hex.toString (); }

3. Formát Hex to ASCII

Podobne urobíme konverziu formátu Hex na ASCII v troch krokoch:

  1. Znížte Hex hodnotu na 2 char skupiny
  2. Preveďte ho na základňu 16 Integer pomocou Integer.parseInt (hex, 16) a obsadiť do char
  3. Pripojte všetky znaky v a StringBuilder

Pozrime sa na príklad, ako môžeme dosiahnuť vyššie uvedené kroky:

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

4. Test

Nakoniec pomocou týchto metód urobíme rýchly test:

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

5. Záver

Na záver sme sa pozreli na najjednoduchšie spôsoby konverzie medzi ASCII a Hex pomocou Javy.

Implementáciu všetkých týchto príkladov a útržkov kódu nájdete v projekte github - jednoducho importujte projekt a spustite ho tak, ako je.


$config[zx-auto] not found$config[zx-overlay] not found