Konversi Hex ke ASCII di Java

1. Ikhtisar

Dalam artikel singkat ini, kami akan melakukan beberapa konversi sederhana antara format Hex dan ASCII.

Dalam kasus penggunaan tipikal, format Hex dapat digunakan untuk menuliskan nilai integer yang sangat besar dalam bentuk yang kompak. Misalnya, AD45 lebih pendek dari padanan desimalnya 44357 dan seiring bertambahnya nilai, perbedaan panjang menjadi lebih jelas.

2. ASCII hingga Hex

Sekarang, mari kita lihat opsi kami untuk mengonversi nilai ASCII menjadi Hex:

  1. Ubah String menjadi array karakter
  2. Transmisikan setiap karakter ke int
  3. Gunakan Integer.toHexString () untuk mengubahnya menjadi Hex

Berikut adalah contoh singkat bagaimana kita dapat mencapai langkah-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 Hex ke ASCII

Demikian pula, mari lakukan konversi format Hex ke ASCII dalam tiga langkah:

  1. Potong nilai Hex dalam 2 kelompok karakter
  2. Konversikan ke basis 16 Integer menggunakan Integer.parseInt (hex, 16) dan cast to char
  3. Tambahkan semua karakter di 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. Uji

Terakhir, dengan menggunakan metode ini, mari lakukan pengujian cepat:

@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

Untuk menyimpulkan, kami melihat cara paling sederhana untuk mengonversi antara ASCII dan Hex menggunakan Java.

Penerapan semua contoh dan cuplikan kode ini dapat ditemukan di proyek github - cukup impor proyek dan jalankan apa adanya.