1.高位字节、低位字节
要理解什么是大端模式和小端模式,必须先理解高位字节和低位字节的概念。
一个16位的变量为 1111 1111 0000 0000,那么在这16个位置中的前八个就是高位,1111 1111就是高位字节;
后八个就是低位,0000 0000就是低位字节。
2.大端模式、小端模式
大端模式(Big-Endian)就是将低位字节存放在内存的高地址端,高位字节存放在内存的低地址端;
小端模式(Little-Endian)就是将低位字节存放在内存的低地址端,高位字节存放在内存的高地址端。
3.为什么会有大小端模式?
在计算机系统中,我们是以字节为单位的,每个地址单元都对应一个字节。但很多类型长度大于1字节
(比如C语言4字节的int、long等);另外,对于位数大于8位的操作系统,例如16位或者32位的处理器,
由于寄存器的宽度大于1字节,那么必然存在着一个如何将多个字节安排的问题。因此就导致了大端模
式和小端存储模式。例如一个16bit的short型a,在内存中的地址为0x0010,a的值为0x1122,那么0x11
为高字节,0x22为低字节。对于大端模式,低地址0x0010存放高位字节0x11,高地址0x0011存放低位
字节0x22;小端模式,正好相反,低地址0x0010存放低位字节0x22,高地址0x0011存放高位字节0x11。
PS:我们常用的X86结构是小端模式;TCP/IP协议为大端模式。
More:http://blog.youkuaiyun.com/ce123/article/details/6971544