SeouliteLab

[Java/자바] Float과 Byte 배열 간의 변환 본문

프로그래밍

[Java/자바] Float과 Byte 배열 간의 변환

Seoulite Lab 2024. 3. 18. 08:06

Java에서는 Float 값을 Byte 배열로 변환하거나, 반대로 Byte 배열을 Float 값으로 변환하는 기능을 제공합니다. 이번 포스트에서는 이러한 변환을 어떻게 할 수 있는지 살펴보겠습니다.

1. Float을 Byte 배열로 변환하기

먼저 Float 값을 Byte 배열로 변환하는 방법을 알아보겠습니다. 이 과정은 Float 값을 바이트 단위로 분해하여 배열로 저장하는 과정입니다.

예제 1: Float을 Byte 배열로 변환하기

public class Main {
    public static void main(String[] args) {
        float floatValue = 3.14f;
        byte[] byteArray = new byte[4];

        int intBits = Float.floatToIntBits(floatValue);
        for (int i = 0; i < 4; i++) {
            byteArray[i] = (byte) ((intBits >> (i * 8)) & 0xff);
        }

        System.out.println("Float value: " + floatValue);
        System.out.print("Byte array: ");
        for (byte b : byteArray) {
            System.out.print(b + " ");
        }
    }
}

위 예제는 Float 값을 Byte 배열로 변환하는 과정을 보여줍니다. Float 값을 int로 변환한 후 바이트 단위로 분해하여 배열에 저장합니다.

2. Byte 배열을 Float으로 변환하기

이제는 Byte 배열을 Float 값으로 변환하는 과정을 살펴보겠습니다. 이 과정은 Byte 배열을 다시 하나의 값으로 합치고 이를 Float 값으로 변환하는 과정입니다.

예제 2: Byte 배열을 Float으로 변환하기

public class Main {
    public static void main(String[] args) {
        byte[] byteArray = {64, -72, 81, -36};

        int intBits = 0;
        for (int i = 0; i < 4; i++) {
            intBits |= (byteArray[i] & 0xff) << (i * 8);
        }

        float floatValue = Float.intBitsToFloat(intBits);

        System.out.print("Byte array: ");
        for (byte b : byteArray) {
            System.out.print(b + " ");
        }
        System.out.println("\nFloat value: " + floatValue);
    }
}

위 예제는 Byte 배열을 Float 값으로 변환하는 과정을 보여줍니다. Byte 배열의 각 바이트를 합쳐서 int 값으로 만든 후, 이를 Float 값으로 변환합니다.