Java에서 정수를 바이트 배열로 효율적으로 변환
정수를 바이트 배열로 변환하는 것은 네트워크와 같은 다양한 목적에 유용할 수 있습니다. 전송 또는 데이터 저장. 이 변환을 수행하는 방법에는 여러 가지가 있습니다.
ByteBuffer 클래스:
한 가지 효율적인 방법은 ByteBuffer 클래스를 사용하는 것입니다. ByteBuffer는 바이너리 데이터를 저장하고 이를 조작하기 위한 다양한 연산을 제공하는 버퍼입니다. ByteBuffer를 사용하여 정수를 바이트 배열로 변환하려면:
ByteBuffer b = ByteBuffer.allocate(4); // Allocate a 4-byte buffer b.putInt(0xAABBCCDD); // Write the integer value to the buffer byte[] result = b.array(); // Retrieve the byte array from the buffer
여기서 버퍼의 바이트 순서는 바이트가 올바른 순서로 정렬되도록 보장합니다.
수동 변환:
또는 정수를 바이트 배열로 수동으로 변환할 수 있습니다.
byte[] toBytes(int i) { // Create a new byte array of length 4 byte[] result = new byte[4]; // Shift bits and assign to each byte result[0] = (byte) (i >> 24); result[1] = (byte) (i >> 16); result[2] = (byte) (i >> 8); result[3] = (byte) i; return result; }
이 접근 방식에는 명시적인 비트 이동과 각 바이트에 대한 할당이 필요합니다.
java.nio.Bits의 도우미 메서드:
ByteBuffer 클래스 java.nio.Bits 클래스에 정의된 내부 도우미 메소드를 활용합니다:
private static byte int3(int x) { return (byte)(x >> 24); } private static byte int2(int x) { return (byte)(x >> 16); } private static byte int1(int x) { return (byte)(x >> 8); } private static byte int0(int x) { return (byte)(x >> 0); }
이러한 방법은 위에서 언급한 비트 이동 작업을 단순화합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3