0%

字节序

字节序,顾名思义就是字节的顺序。说详细点,就是大于一个字节类型的数据在内存中存放的顺序。 通常情况下,开发时不会直接和字节序打交道,只有在跨平台或网络传输字节数据时会使用到。

字节序按类型分为两种:Little-EndianBig-Endian

  • Little-Endian:低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
  • Big-Endian:高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
  • 网络字节序:TCP/IP各层协议将字节序定义为Big-Endian,因此TCP/IP协议中使用的字节序通常称之为网络字节序。

例:如果将0x1234abcd写入到以0x0000开始的内存中,则结果为:

1
2
3
4
5
         BE    LE
0x0000 0x12 0xcd
0x0001 0x34 0xab
0x0002 0xab 0x34
0x0003 0xcd 0x12