Little-endian和Big-endian的区别

一、大端序(英:big-endian)或称大尾序

  • 数据以8bit为单位:
    地址增长方向  →
    ... 0x0A 0x0B 0x0C 0x0D ...

示例中,最高位字节是0x0A 存储在最低的内存地址处。下一个字节0x0B存在后面的地址处。正类似于十六进制字节从左到右的阅读顺序。

  • 数据以16bit为单位:
地址增长方向  →
... 0x0A0B 0x0C0D ...

最高的16bit单元0x0A0B存储在低位。

Little-endian和Big-endian的区别_第1张图片

Big endian:多字节数据中,书写时字节从左向右排列(LSB…MSB),存储时高位地址存放低位数据(LSB)。

                     Motorola 6800Motorola 68000PowerPC 970System/370SPARC(除V9外)等处理器为Big endian

二、小端序(英:little-endian)或称小尾序

  • 数据以8bit为单位:
    地址增长方向  →
    ... 0x0D 0x0C 0x0B 0x0A ...

最低位字节是0x0D 存储在最低的内存地址处。后面字节依次存在后面的地址处。

  • 数据以16bit为单位:
地址增长方向  →
... 0x0C0D 0x0A0B ...

最低的16bit单元0x0D0C存储在低位。

Little-endian和Big-endian的区别_第2张图片

     Little endian:多字节数据中,书写时字节从右向左排列(MSB…LSB),存储时高位地址存放高位数据(MSB)。Little endian是最常用的模式。

                           8051系列单片机、x86MOS Technology 6502Z80VAXPDP-11等处理器为Little endian。


  • ARM, PowerPC (除PowerPC 970外), DEC Alpha, SPARC V9, MIPS, PA-RISC and IA64的字节序是可配置的。

你可能感兴趣的:(Little-endian和Big-endian的区别)