大端存储:数据的高字节存储在内存低地址,数据的低字节存储在内存高地址。---典型CPU:moto的power pc系列
小端存储:数据的低字节存储在内存低地址,数据的高字节存储在内存高地址。---典型CPU:inter X86系列
例如要存储一个32位的unsgiend int型的变量vol=0x12345678,两种不同存储模式如下:
地址偏移量 | 大端存储 | 小端存储 |
0x00(地址低字节) | 0x12(高字节) | 0x78(低字节) |
0x01 | 0x34 | 0x56 |
0x02 | 0x56 | 0x34 |
0x03(地址高字节) | 0x78(低字节) | 0x12(高字节) |
用电脑测试,amd存储方式是小端存储
#include <stdio.h>union { unsigned int vol; unsigned char tab[4];}test;//定义一个联合体int main(void) { test.vol=0x12345678; printf("vol=%x
",test.vol); printf("tab[0]=%x
",test.tab[0]);return 0;}
测试结果:
用stm32测试,代码如下:
测试结果如下:
stm32内存存储数据方式为小端存储模式。