Java에서 바이트 배열을 정수로 변환
Siddharth Swami
2023%!s(<nil>)10%!s(<nil>)12%!s(<nil>)
Java
Java Array
바이트는 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 유형의 형식으로 저장합니다. 출력에는 두 개의 다른 정수가 있습니다. 앞에서 설명한 것처럼이 코드는 배열에있는 각 요소를 가져와 그에 따라 변환합니다.
튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다