English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 튜토리얼

Java 흐름 제어

Java 배열

Java 상대적 객체(I)

Java 상대적 객체(II)

Java 상대적 객체(III)

Java 예외 처리

Java 목록(List)

Java Queue(큐)

Java Map 집합

Java Set 집합

Java 입력/출력(I/O)

Java Reader/Writer

Java 다른 주제

Java 프로그램이 바이트 배열을 16진수로 변환합니다

Java 예제 전체

이 프로그램에서는 Java에서 바이트 배열을 16진수로 변환하는 다양한 방법을 배울 수 있습니다.

예제1:바이트 배열을 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에 저장합니다。

대용량 바이트 배열 변환 시 이는 상대적으로 느리는 과정입니다. 아래에 보여주는 바이트操作을 사용하여 실행 속도를 크게 향상시킬 수 있습니다.

예제2:사용자 정의 바이트操作을 통해 바이트 배열을 16진수 값으로 변환합니다

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동일합니다.

Java 예제 전체