- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我需要以不同方式处理 LITTLE_ENDIAN
和 BIG_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, eitherBIG_ENDIAN
orLITTLE_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/
我在尝试将短值转换为字节[2]时遇到一些问题。我使用它对某些音频数据缓冲区进行一些转换(将增益应用于缓冲区)。首先,我像这样加载音频缓冲区: mRecorder.read(buffer, 0, buf
我有这段遗留代码,我需要在 BIG 和 LITTLE Endian 机器上运行。问题出在 hton() 上。 msg->Mac 是 char Mac[16+1]现有代码:(仅适用于 BIG) if (
如果我需要以不同方式处理 LITTLE_ENDIAN 和 BIG_ENDIAN 情况,如果我的系统是这样,我该如何测试 BIG_ENDIAN 情况使用LITTLE_ENDIAN?当系统的ByteOrd
我是一名优秀的程序员,十分优秀!