HOWTO · Java

Java에서 바이트 배열을 정수로 변환

이 튜토리얼은 Java에서 바이트 배열을 int로 변환하는 방법을 보여줍니다.

이 페이지의 내용

바이트는 Java의 기본 데이터 유형에 속합니다. Java의 바이트 배열은 바이트를 포함하는 배열이며 이진 데이터 모음을 저장합니다. 정수 데이터 유형은 Java에서 정수를 나타냅니다. 바이너리 데이터는 정수 형태로 변환 될 수 있기 때문에 바이트와 정수는 밀접하게 연결되어 있습니다.

이 기사에서는 바이트 배열을 Java에서 정수 유형으로 변환합니다.

Java의java.nio패키지에있는ByteBuffer클래스는 바이트 배열을 정수로 변환하는 방법을 제공합니다.

아래 코드를 참조하십시오.

import java.nio.ByteBuffer;

public class Test {
  public static void main(String[] args) {
    byte[] bytes = {0x00, 0x01, 0x03, 0x10};
    System.out.println(ByteBuffer.wrap(bytes).getInt() + " ");
  }
}

출력 :

66320

위의 코드에서 우리는 주어진 바이트 배열 길이의Bytebuffer를 생성하고 그 후 정수 유형으로 다음 4 바이트를 읽습니다. ByteBuffer메소드는 바이트 배열을 버퍼로 래핑하고getInt()함수는 클래스의 다음 4 바이트를 정수로 읽습니다.

아래에는ByteBuffer클래스의 또 다른 예가 있습니다. 아래 코드에서는 메모리를 2 개만 할당합니다. 방법에 의해 수행되는 기능은 이전 기능과 동일합니다. 여기서는 두 개의 다른 출력을 제공하는 것을 볼 수 있듯이 각 바이트를 개별적으로 변환합니다.

아래 코드를 참조하십시오.

import java.nio.*;
class Byte_Array_To_Int {
  static void byte_To_Int(byte ar[]) {
    ByteBuffer wrapped = ByteBuffer.wrap(ar); // big-endian by default
    short num = wrapped.getShort();
    ByteBuffer dbuf = ByteBuffer.allocate(2); // allocates the memory by 2.
    dbuf.putShort(num);
    byte[] bytes = dbuf.array();
    for (int i = 0; i < bytes.length; i++) { // loop for printing the elements.

      System.out.println(bytes[i]);
    }
  }
  public static void main(String[] args) {
    byte[] b = {0x03, 0x04}; // byte type array.
    byte_To_Int(b);
  }

출력 :

3
4 

ByteBuffer.wrap()은 배열을 버퍼로 래핑합니다. 기본적으로 데이터를 빅 엔디안 0x00 유형의 형식으로 저장합니다. 출력에는 두 개의 다른 정수가 있습니다. 앞에서 설명한 것처럼이 코드는 배열에있는 각 요소를 가져와 그에 따라 변환합니다.