1) Little-Endian就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
0x78 | 0x56 | 0x34 | 0x12
2) Big-Endian就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
例如,数字0x12 34 56 78在内存中的表示形式为
小端模式:
低地址 ------------------> 高地址0x78 | 0x56 | 0x34 | 0x12
大端模式:
低地址 -----------------> 高地址
0x12 | 0x34 | 0x56 | 0x78
在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,我们常用的X86结构是小端模式,而KEIL C51则为大端模式。很多的ARM,DSP都为小端模式。有些ARM处理器还可以由硬件来选择是大端模式还是小端模式。
字节序:
一般操作系统都是小端,而通讯协议是大端的。
CPU字节序:
Big Endian : PowerPC、IBM、Sun
Little Endian : x86、DEC
ARM既可以工作在大端模式,也可以工作在小端模式。
常见文件字节序:
Adobe PS – Big Endian
BMP – Little Endian
DXF(AutoCAD) – Variable
GIF – Little Endian
JPEG – Big Endian
MacPaint – Big Endian
RTF – Little Endian
另外,Java和所有的网络通讯协议都是使用Big-Endian的编码。
参考:
http://blog.youkuaiyun.com/ce123_zhouwei/article/details/6971544