1

我正在尝试将 int[] 转换为 bytes 。它也被转换。

我的转换代码是这样的。

public static byte[] convertIntoBytes(int[] menuIds){
    byte[] byteConverted;
    ByteBuffer byteBuffer = ByteBuffer.allocate(menuIds.length * 4);
    IntBuffer intBuffer = byteBuffer.asIntBuffer();
    intBuffer.put(menuIds);
    byteConverted = byteBuffer.array();
    for (int i = 0; i < 840; i++) {
        Log.d("Bytes sfter Insert", ""+byteConverted[i]);
    }
    return byteConverted;
}

假设我输入一个 int[] = {10,11,15,41,12,8,4,23,5,17,23,36,6} 现在我希望字节数组像这样 {10,0 ,0,0,11,0,0,0,15,0,0,0,41,0,0,0,12,0,0,0,8,0,0,0,4,0,0 ,0,23,0,0,0,5,0,0,0,17,0,0,0,23,0,0,0,36,0,0,0,6,0,0,0 }

但即将出现的字节数组是

{0,0,0,10,0,0,0,11,0,0,0,15,0,0,0,41,0,0,0,12,0,0,0,8,0 ,0,0,4,0,0,0,23,0,0,0,5,0,0,0,17,0,0,0,23,0,0,0,36,0,0 ,0,6,}

实际上我试图让字节数组从第一个位置开始。

4

2 回答 2

2

试试这个

...
ByteBuffer byteBuffer = ByteBuffer.allocate(menuIds.length * 4);
byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
...
于 2013-08-13T08:07:11.227 回答
1

这取决于当前机器上的位顺序。

于 2013-08-13T07:45:07.220 回答