gpt4 book ai didi

java - 测试 LITTLE_ENDIAN 和 BIG_ENDIAN 场景

转载 作者:行者123 更新时间:2023-12-02 10:14:29 26 4
gpt4 key购买 nike

如果我需要以不同方式处理 LITTLE_ENDIANBIG_ENDIAN 情况,如果我的系统是这样,我该如何测试 BIG_ENDIAN 情况使用LITTLE_ENDIAN?当系统的ByteOrder.nativeOrder().equals(ByteOrder.LITTLE_ENDIAN)时,如何测试ByteOrder.nativeOrder().equals(ByteOrder.BIG_ENDIAN)的情况?因为 byteBuffer .order(ByteOrder.BIG_ENDIAN) 只是改变了 bytebuffer 上的顺序,而不是系统,对吗?

最佳答案

使用 ByteBuffer 。它有方法order(ByteOrder bo):

Modifies this buffer's byte order.

Parameters:
bo - The new byte order, either BIG_ENDIAN or LITTLE_ENDIAN

请注意,ByteBuffer 的 javadoc 表示:

The initial order of a byte buffer is always BIG_ENDIAN.

示例

int value = 123456789;
byte[] bigEndian = ByteBuffer.allocate(Integer.BYTES)
.order(ByteOrder.BIG_ENDIAN)
.putInt(value)
.array();
byte[] littleEndian = ByteBuffer.allocate(Integer.BYTES)
.order(ByteOrder.LITTLE_ENDIAN)
.putInt(value)
.array();
System.out.printf("value = 0x%08x = %d%n", value, value);
System.out.println(Arrays.toString(bigEndian));
System.out.println(Arrays.toString(littleEndian));

输出

value = 0x075bcd15 = 123456789
[7, 91, -51, 21]
[21, -51, 91, 7]

关于java - 测试 LITTLE_ENDIAN 和 BIG_ENDIAN 场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54775950/

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