可能重复:
Convert integer into byte array (Java)
我需要在一个4字节大的字节数组中存储缓冲区的长度。
伪代码:
private byte[] convertLengthToByte(byte[] myBuffer)
{
int length = myBuffer.length;
byte[] byteLength = new byte[4];
//here is where I need to convert the int length to a byte array
byteLength = length.toByteArray;
return byteLength;
}
实现这一目标的最佳方式是什么?请记住,稍后我必须将该字节数组转换回整数。
发布于 2011-06-17 00:05:31
您可以使用如下ByteBuffer
将yourInt
转换为字节:
return ByteBuffer.allocate(4).putInt(yourInt).array();
请注意,在执行此操作时可能需要考虑byte order。
发布于 2012-04-30 16:16:04
public static byte[] my_int_to_bb_le(int myInteger){
return ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN).putInt(myInteger).array();
}
public static int my_bb_to_int_le(byte [] byteBarray){
return ByteBuffer.wrap(byteBarray).order(ByteOrder.LITTLE_ENDIAN).getInt();
}
public static byte[] my_int_to_bb_be(int myInteger){
return ByteBuffer.allocate(4).order(ByteOrder.BIG_ENDIAN).putInt(myInteger).array();
}
public static int my_bb_to_int_be(byte [] byteBarray){
return ByteBuffer.wrap(byteBarray).order(ByteOrder.BIG_ENDIAN).getInt();
}
发布于 2011-06-17 00:04:42
这应该是可行的:
public static final byte[] intToByteArray(int value) {
return new byte[] {
(byte)(value >>> 24),
(byte)(value >>> 16),
(byte)(value >>> 8),
(byte)value};
}
编辑一个更简单的解决方案是given in this thread。
https://stackoverflow.com/questions/6374915
复制相似问题