English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 프로그램에서는 Java에서 바이트 배열을 16진수로 변환하는 다양한 방법을 배울 수 있습니다.
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); } } }
프로그램을 실행할 때, 출력은 다음과 같습니다:
0A020F0B
위 프로그램에서 bytes라는 바이트 배열이 있습니다. 바이트 배열을 16진수 값으로 변환하려면 배열의 각 바이트를 순회하며 String의 format()을 사용합니다.
우리는 %02X 16진수(X) 값을 출력하는 두 위치(02)을 문자열 st에 저장합니다。
대용량 바이트 배열 변환 시 이는 상대적으로 느리는 과정입니다. 아래에 보여주는 바이트操作을 사용하여 실행 속도를 크게 향상시킬 수 있습니다.
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); } }
이 프로그램의 출력과 예제1동일합니다.