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

Siddharth Swami 2023년10월12일
Java에서 바이트 배열을 정수로 변환

바이트는 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 유형의 형식으로 저장합니다. 출력에는 두 개의 다른 정수가 있습니다. 앞에서 설명한 것처럼이 코드는 배열에있는 각 요소를 가져와 그에 따라 변환합니다.

관련 문장 - Java Array