大多数ARM处理器都是采用的小端模式,PowerPC是采用的大端模式,网络字节序是采用的大端模式。
名称解释:
【大端模式】 CPU对操作数的存放方式是高地址存放低位,低地址存放高位。
【小端模式】CPU对操作数的存放方式是高地址存放高位,低地址存放低位。
以下为小端模式下各基础数据类型占用内存方式,以数组的方式表达
类型 | 数值(十进制) | 十六进制 | 数组形式 |
---|---|---|---|
S16 | 10000 | 0x27 10 | buf[]=[0x10, 0x27] |
S16 | -10000 | 0xd8 f0 | buf[]=[0xf0, 0xd8] |
U16 | 10000 | 0x27 10 | buf[]=[0x10, 0x27] |
S32 | 1000000 | 0x00 0f 42 40 | buf[]=[0x40, 0x42, 0x0f, 0x00] |
S32 | -1000000 | 0xff f0 bd c0 | buf[]=[0xc0, 0xbd, 0xf0, 0xff] |
U32 | 1000000 | 0x00 0f 42 40 | buf[]=[0x40, 0x42, 0x0f, 0x00] |
S64 | 100000000 | [0x00, 0xe1, 0xf5, 0x05, 0x00, 0x00, 0x00, 0x00 | buf[]=[[0x00, 0xe1, 0xf5, 0x05, 0x00, 0x00, 0x00, 0x00] |
S64 | -100000000 | 0xff ff ff ff fa 0a 1f 00 | buf[]=[0x00, 0x1f, 0x0a, 0xfa, 0xff, 0xff, 0xff, 0xff] |
U64 | 100000000 | [0x00, 0xe1, 0xf5, 0x05, 0x00, 0x00, 0x00, 0x00 | buf[]=[[0x00, 0xe1, 0xf5, 0x05, 0x00, 0x00, 0x00, 0x00] |