gpt4 book ai didi

Java小端顺序

转载 作者:搜寻专家 更新时间:2023-11-01 02:33:15 24 4
gpt4 key购买 nike

我需要将数据存储为 LITTLE_ENDIAN 而不是默认的 BIG_ENDIAN

这是我的示例代码:

for (int i = 0; i < logo.length; i++) {
logoArray[i] = ((Integer) logo[i]).byteValue();

logoArray[i] = (byte) (((logoArray[i] & 1) << 7) + ((logoArray[i] & 2) << 5) + ((logoArray[i] & 4) << 3)
+ ((logoArray[i] & 8) << 1) + ((logoArray[i] & 16) >> 1) + ((logoArray[i] & 32) >> 3)
+ ((logoArray[i] & 64) >> 5) + ((logoArray[i] & 128) >> 7));
}

对于 LITTLE_ENDIAN 应该如何用 ByteBuffer 重写,因为下面的代码对我不起作用:

 ByteBuffer record = ByteBuffer.allocate(logo.length);
record.order(ByteOrder.LITTLE_ENDIAN);
...
record.put(((Integer) logo[i]).byteValue());
...
record.array(); // get

最佳答案

如果您使用 putInt 而不是 put,ByteBuffer 将为您工作。

record.putInt((Integer) logo[i]);

字节数组(如 Integer.byteValue())没有“字节顺序”,因此它按原样存储。

关于Java小端顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4398731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com