Tukarkan Hex ke ASCII di Java

1. Gambaran keseluruhan

Dalam artikel ringkas ini, kami akan melakukan beberapa penukaran sederhana antara format Hex dan ASCII.

Dalam kes penggunaan biasa, format Hex dapat digunakan untuk menuliskan nilai bilangan bulat yang sangat besar dalam bentuk padat. Sebagai contoh, AD45 lebih pendek daripada setara perpuluhannya 44357 dan apabila nilai meningkat perbezaan panjang menjadi lebih ketara.

2. ASCII hingga Hex

Sekarang, mari lihat pilihan kami untuk menukar nilai ASCII ke Hex:

  1. Tukar String ke array char
  2. Hantar setiap arang ke int
  3. Gunakan Integer.toHexString () untuk menukarnya menjadi Hex

Inilah contoh ringkas bagaimana kita dapat mencapai langkah di atas:

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. Format Heks ke ASCII

Begitu juga, mari kita lakukan penukaran format Hex ke ASCII dalam tiga langkah:

  1. Potong nilai Hex dalam 2 kumpulan char
  2. Tukarkan ke asas 16 Integer menggunakan Integer.parseInt (hex, 16) dan hantar ke char
  3. Tambahkan semua watak dalam StringBuilder

Mari kita lihat contoh bagaimana kita dapat mencapai langkah-langkah di atas:

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

Akhirnya, dengan menggunakan kaedah ini, mari lakukan ujian pantas:

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

Sebagai kesimpulan, kami melihat cara termudah untuk menukar antara ASCII dan Hex menggunakan Java.

Pelaksanaan semua contoh dan coretan kod ini boleh didapati di projek github - cukup import projek dan jalankan sebagaimana adanya.