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