使用java或android将整数转换为无符号字节数组

时间:2016-10-13 09:23:59

标签: java c# android arrays bitconverter

您好我在SO中看到很多链接将整数值转换为无符号字节数组。但我无法明确自己的想法。我的转换如下

//在android

<?xml version="1.0" encoding="UTF-8"?>
    ..
    ...
    <query> 
         update tableX set colName='$ClassService.getParameter(\"param1\")$' where id = '0'
    </query>
    ...

在android中输出 [0,1,-105,-52]

//在c#

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;
    }

输出c#

[204,151,1,0]

我如何在java或android中获得此输出。我检查java 8和Guava有相同的返回。

请帮我一些编码

1 个答案:

答案 0 :(得分:0)

根据@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]