现在主流的CPU,intel系列的是采用的little endian的格式存放数据。
C/C++语言编写的程序里数据存储顺序是跟编译平台所在的CPU相关的,而 JAVA编写的程序则唯一采用big endian方式来存储数据。
字节排序按分为大端和小端,概念如下
大端(big endian):低地址存放高有效字节
小端(little endian):低字节存放地有效字节
以C/C++语言为例:
对于一个int型数0x12345678,为方便说明,这里采用16进制表示。这个数在不同字节顺序存储的CPU中储存顺序如下:
0x12345678 16进制,两个数就是一字节
高有效字节——>低有效字节: 12 34 56 78
低地址位 高低址位
大端: 12 34 56 78
小端: 78 56 34 12
总结:高低有效字节指代如0x12 34转换为二进制为00010010 00110100,排在前面的字节为高有效字节,因为其代表的值比其后面的数值大;且大小端针对以字节为单位,字节内部(8bit)无大小端概念