1.cpu大小端定义
小端模式:低地址存放低字节数据
大端模式:低地址存放高字节数据
2.举例说明
例如:32位数 0x88776655,在内存中的起始地址是 0x4000,那么存储如下:
地址 | 0x4000 | 0x4001 | 0x4002 | 0x4003 |
---|---|---|---|---|
小端模式 | 0x55 | 0x66 | 0x77 | 0x88 |
大端模式 | 0x88 | 0x77 | 0x66 | 0x55 |
注意:许多ARM平台 例如STM32都是小端模式;
对于CPU是大端还是小端,可使用代码来进行测试:
void find_cpu_endian(void)
{
int x=1;
if(*(char*)&x==1) {
printf("cpu 小端模式");
} else {
printf("cpu 大端模式");
}
}