计算机在内存中存放数据的顺序都是从低地址到高地址。 若首先取高字节的数据存放在低地址,则是大端法; 若首先取低字节的数据存放在低地址,则是小端法; 例如有数据0x01234567 (注意:左边是高字节,右边是低字节) 大端法存放:
地址 |
0X0000 |
0X0001 |
0X0002 |
0X0003 |
数据 |
0X12 |
0X34 |
0X56 |
0X78 |
小端法存放:
地址 |
0X0000 |
0X0001 |
0X0002 |
0X0003 |
数据 |
0X78 |
0X56 |
0X34 |
0X12 |
由于网络协议中规定字节序列都采用大端法,但是CPU中字节序列由于厂商不同,有可能是大端法,也有可能是小端法,这就需要进行大小端的转换。