你有想法通过这个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; */
}
答案 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;
}