大端存储和小端存储的区别

本文探讨了大端存储(如摩托罗拉PowerPC)与小端存储(如Intel X86)在内存布局上的差异,并通过实战演示了32位变量在不同平台(AMD、STM32)上的存储情况,特别关注了STM32的小端存储模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大端存储:数据的高字节存储在内存低地址,数据的低字节存储在内存高地址。---典型CPU:moto的power pc系列

小端存储:数据的低字节存储在内存低地址,数据的高字节存储在内存高地址。---典型CPU:inter X86系列

例如要存储一个32位的unsgiend int型的变量vol=0x12345678,两种不同存储模式如下:

地址偏移量大端存储小端存储
0x00(地址低字节)0x12(高字节)0x78(低字节)
0x010x340x56
0x020x560x34
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;}

测试结果:

20210730110455938.png

用stm32测试,代码如下:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTMwNzI5OTU=,size_16,color_FFFFFF,t_70

 测试结果如下:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTMwNzI5OTU=,size_16,color_FFFFFF,t_70

 20210730111018479.png

stm32内存存储数据方式为小端存储模式。

 参考:https://blog.youkuaiyun.com/weixin_42298922/article/details/113329067?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0.control&spm=1001.2101.3001.4242

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值