如何将数组字节小端转换为大端?

时间:2018-03-12 17:16:38

标签: java

你有想法通过这个UnitTest吗?

@Test public void convert() {   
    byte[] num = {1,0,0,0};//little endian  
    byte[] answer = {0,0,0,1};//big endian  
    assertArrayEquals(answer , Convert.converting(num)); 
}

public static byte[] converting(byte[] value) {
    //TO DO     
    /* ByteBuffer bb = ByteBuffer.wrap(nombre); // Not working
    bb.order( ByteOrder.LITTLE_ENDIAN);
    return bb; */
}

2 个答案:

答案 0 :(得分:1)

当您使用ByteBuffer.order(ByteOrder.LITTLE_ENDIAN)时,不会更改ByteBuffer的“内部”表示。它只允许你以正确的endian表示从中获取整数/ long等(因为你需要有多字节类型才能有有意义的字节顺序)。

答案 1 :(得分:0)

您可以通过将convert方法更改为:

来自行反转byte[]数组
public static byte[] converting(byte[] value) {
    final int length = value.length;
    byte[] res = new byte[length];
    for(int i = 0; i < length; i++) {
        res[length - i - 1] = value[i];
    }
    return res;
}