Hi i have seen many links in SO to convert integer value to unsigned byte array. but i can't able to get clear idea. my conversion is as follows
//in 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;
}
Output in android
[0,1,-105,-52]
//in c#
uint CheckSum=104396;
byte[] byteArray=BitConverter.GetBytes(CheckSum)
where BitConverter is System method
output in c#
[204,151,1,0]
How i get this output in java or android. I check java 8 and Guava there are returning the same.
please help me with some coding
As per @greenapps suggestion, Getting byte array in LITTLE_ENDIAN format solved the problem.
ByteBuffer byteBuffer = ByteBuffer.allocate(4);
byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
byteBuffer.putInt((int) (value & 0xffffffffL));
byte[] array=Bytes.asList(byteBuffer.array())
Output in android
[-52,-105,1,0]
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.