Saturday, December 2, 2017

자바(JAVA)에서 int를 byte array(byte[])로, byte array(byte[])를 int로 변환하는 함수

자바에서 정수를 바이트 배열로 변환하고, 바이트 배열을 정수로 변환하는 방법

자바 프로그래밍에서 데이터를 다루다 보면 때때로 정수를 바이트 배열로 변환하거나 그 반대의 작업을 해야 할 경우가 있습니다. 이 글에서는 이러한 변환을 수행하는 두 가지 함수에 대해 설명합니다.

정수를 바이트 배열로 변환하는 함수

먼저, 정수를 바이트 배열로 변환하는 함수입니다. 이 함수는 4개의 요소를 가진 새로운 바이트 배열을 생성하고, 각 요소에 대해 입력된 정수 값을 오른쪽으로 비트 시프팅하여 해당 부분의 값을 추출합니다.

public byte[] intToByteArray(int value) {
  byte[] byteArray = new byte[4];
  byteArray[0] = (byte)(value >> 24);
  byteArray[1] = (byte)(value >> 16);
  byteArray[2] = (byte)(value >> 8);
  byteArray[3] = (byte)(value);

return byteArray;
}

바이트 배열을 정수로 변환하는 함수

다음으로, 바이트 배열을 다시 원래의 정수 값으로 복원하는 함수입니다. 각 요소는 왼쪽으로 비트 시프팅되어 원래 위치에 맞게 조정되며, 이렇게 복원된 값들은 OR 연산자(|)를 통해 결합됩니다.

public int byteArrayToInt(byte bytes[]) {
    return ((((int)bytes[0] &0xff) <<24) |
            (((int)bytes[1] &0xff) <<16) |
            (((int)bytes[2] &0xff) <<8 ) |
            (((int)bytes[3] &0xff)));
}

함수 사용 예시

아래 코드는 위에서 설명한 두 가지 함수를 어떻게 사용할 수 있는지 보여줍니다.

int value =123456789;
byte[] byteArray = intToByteArray(value);
int newValue = byteArrayToInt(byteArray);

위 코드에서 `value`라는 변수에 저장된 정수 값은 `intToByteArray`라는 메서드에 의해 바이트 배열 형태로 변환되고, 이렇게 변환된 바이트 배열은 다시 `byteArrayToInt`라는 메서드에 의해 원래의 정수 값으로 복원됩니다.


0 개의 댓글:

Post a Comment