这篇介绍一下内存中存放数据的两种模式:大端存储(或大端模式,Big-Endian) & 小端存储(或小段模式,Little-Endian),这两种存储模式在通信或者socket编程里面可能用的比较多
如有侵权,请联系删除,如有错误,欢迎大家指正,谢谢
大端存储(Big-Endian)
数据的高字节存储在低地址中,数据的低字节存储在高地址中
如:
int a = 1;
// int在内存中占 4Byte;
// a在内存中的分布为 0x1 0x0 0x0 0x0;
// 从左到右内存地址降低,也就是高字节地址存放的是a的低字节数据
应用:C51是大端存储;socket编程中网络字节序一般是大端存储
小端存储(Little-Endian)
数据的高字节存储在高地址中,数据的低字节存储在低地址中
如:
int a = 1;
// int在内存中占 4Byte;
// a在内存中的分布为 0x0 0x0 0x0 0x1;
// 从左到右内存地址降低,也就是低字节地址存放的是a的低字节数据
应用:X86结构、ARM和DSP都是小端存储
测试
进行大小端存储测试主要有两种方法,一种是通过强转,另一种是联合
强转测试