English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo programma, imparerai diversi metodi per convertire un array di byte in esadecimale in Java.
public class ByteHex { public static void main(String[] args) { byte[] bytes = {10, 2, 15, 11}; for (byte b : bytes) { String st = String.format("%02X", b); System.out.print(st); {} {} {}
Quando eseguiamo questo programma, l'output è:
0A020F0B
Nel programma sopra, abbiamo un array di byte chiamato bytes. Per convertire l'array di byte in un valore esadecimale, esaminiamo ogni byte dell'array e utilizziamo format() della String.
Usiamo %02X per stampare due posizioni (02) del valore esadecimale (X) e lo memorizziamo nella stringa st.
Per la conversione di grandi array di byte, questo processo è relativamente lento. Possiamo utilizzare le operazioni su byte indicate di seguito per migliorare notevolmente la velocità di esecuzione.
public class ByteHex { private final static char[] hexArray = "0123456789ABCDEF".toCharArray(); public static String bytesToHex(byte[] bytes) { char[] hexChars = new char[bytes.length * 2]; for (int j = 0; j < bytes.length; j++) { int v = bytes[j] & 0xFF; hexChars[j * 2] = hexArray[v >>> 4]; hexChars[j * 2 + 1] = hexArray[v & 0x0F]; {} return new String(hexChars); {} public static void main(String[] args) { byte[] bytes = {10, 2, 15, 11}; String s = bytesToHex(bytes); System.out.println(s); {} {}
L'output di questo programma è lo stesso dell'esempio 1.