【发布时间】:2014-05-23 15:20:27
【问题描述】:
好像Java运行时是Big Endian,但是我找不到这个的参考,只针对JVM的类文件规范。
我正在 JLS 中寻找一个明确的位置(无论版本如何),它指定:
int value = 4096; // 0b0001 0000 0000 0000 = 0x10 00
// \ / |
int lastByte = value & 0xFF; // | |
assert lastByte == 0; // ---------------------------
而不是lastByte == 16 (0x10)
或者它指定这取决于平台/JVM。
【问题讨论】:
-
是什么让您认为 Java 中定义了字节序?
-
另外,你能用这些信息做什么? (我知道你很好奇。)
-
Java 语言不以任何方式指定或依赖字节序。并且在任何将字节序暴露给“外部世界”的官方接口中,数据的字节序都是明确指定的,并且通常是可指定的。并且做“bit twiddling”与字节序无关。
-
您给出的示例绝不取决于字节序,因此您甚至无法检测字节序。
标签: java endianness bits jls