用java或android将整数转换为无符号字节数组
本文关键字:无符号 字节 字节数 数组 转换 整数 java android | 更新日期: 2023-09-27 18:12:56
嗨,我在SO中看到了许多将整数值转换为无符号字节数组的链接。但是我不太明白。我的转换如下
//android
int checksum=104396;
byte[] byteArray = GetBytesInt(checksum);
public static byte[] GetBytesInt(int value) {
byte[] bytes = new byte[4];
bytes[0] = (byte) (value >> 24);
bytes[1] = (byte) (value >> 16);
bytes[2] = (byte) (value >> 8);
bytes[3] = (byte) (value);
return bytes;
}
android的输出
[0, -105, -52]
//
uint CheckSum=104396;
byte[] byteArray=BitConverter.GetBytes(CheckSum)
where BitConverter is System method
c#中的输出
(204151年,1,0)如何在java或android中获得此输出。我检查了一下java 8和Guava是否返回相同的结果。
请帮我写点代码
根据@greenapps的建议,获得LITTLE_ENDIAN格式的字节数组解决了问题。
ByteBuffer byteBuffer = ByteBuffer.allocate(4);
byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
byteBuffer.putInt((int) (value & 0xffffffffL));
byte[] array=Bytes.asList(byteBuffer.array())
android的输出
(-52年,-105年,1,0)