Java 在其虚拟机中使用什么字节序?我记得在某处读到它取决于它运行的物理机器,然后我在其他地方读到它总是,我相信,大端。哪个是对的?
多字节数据在class
文件以大端存储。
From Java 虚拟机规范,Java SE 7 版, 第 4 章:class文件格式:
一个类文件由一个流组成
8 位字节。所有 16 位、32 位和
64 位数量由以下方式构造
读二、四、八
分别是连续的8位字节。
始终存储多字节数据项
按大端顺序,其中高位
字节优先。
此外,如果字节码指令中的操作数跨越多个字节,则它也是大端字节序。
From Java 虚拟机规范,Java SE 7 版, 第 2.11 节:指令集摘要:
如果操作数超过一个字节
大小,然后以大端存储
顺序-高位字节在前。为了
例如,无符号 16 位索引
局部变量存储为两个
无符号字节,byte1
and byte2
, 这样的
它的价值是(byte1 << 8) | byte2
.
所以是的,我认为可以说Java虚拟机使用big-endian。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)