Bootstrap

字节序(Endianness)中“little endian“(小端序)与“big endian“(大端序)简要例子说明

将多字节数据存储在内存中时,各字节的存储顺序称为字节序。

"little endian""big endian"是两种不同的字节序(byte order)。

"little endian"(小端序)中,较低有效字节存储在内存的较低地址位置,而较高有效字节则存储在较高地址位置。换句话说,数据的最低有效字节(即较低的字节)存储在最低的内存字节,而最高有效字节存储在更高的内存字节。这种字节序类似于将数字写成十进制时,将较低位放在右边,较高位放在左边的方式。

举个例子,如果有一个16位整数0x1234,在小端序中,最低有效字节是0x34,最高有效字节是0x12。将这个数存储在内存中时,0x34会被存储在较低的地址位置,而0x12则存储在较高的地址位置。

相反,在"big endian"(大端序)中,较高有效字节存储在内存的较低地址位置,而较低有效字节存储在较高地址位置。换句话说,数据的最高有效字节存储在最低的内存字节,而最低有效字节存储在更高的内存字节。这种字节序类似于将数字写成十进制时,将较高位放在右边,较低位放在左边的方式。

以同样的例子,如果将0x1234存储在大端序中,最高有效字节0x12会存储在较低的地址位置,而最低有效字节0x34会存储在较高的地址位置。

字节序的差异在于计算机处理和解释多字节数据时,如整数、浮点数等的存储和读取顺序。正确理解字节序对于确保数据的正确解析、传输和跨平台兼容性至关重要。

例:

CCIX中ReqOp字段中的字节序(Endianness)只适用于ADD、SMAX、SMIN、UMAX和UMIN原子子操作;在CLR、EOR和SET子操作中可以采用任何值。

;