嵌入式系统数据存储的大端模式小端模式应用举例0x12345678存储到8000H

一、背景:

因为不同架构的处理器,所以造成了数据在各种处理器中数据存储方式的不同;一般情况下分为两种,一种是大端模式,另外一种是小端模式。通常情况下:x86、ARM,DSP架构处理器都是小端模式,Motorola等为大端模式。

二、大端小端模式的概念:

小端模式(Little-endian):指数据的高数据位保存在内存的高地址中,而数据的低数据位则保存在内存的低地址中;

大端模式(Big-endian):是指数据的高数据位保存在内存的低地址中,而数据的低数据位则保存在内存的高地址中。

可以看出两种存储数据方式正好相反。

三、应用举例:

以存储一个32位数0x12345678到8000H~8003H四个字节单元中为例,讲解一下数据分别以大端模式和小端模式在内存中的存储不同;

数据大小端模式存储举例
地址8003H8002H8001H8000H
小端模式12345678
大端模式78563412

内存中8000H为低地址,内存地址从8001H-->8001H-->8002H-->8003H以此递进增加,所以8003H为内存地址的高地址;小端模式下:低字节数据存放在内存的低地址中,所以低字节的0x78存放在低地址8000H中,0x56存放在8001H中,以此类推;而大端模式下:高字节数据存放在内存的低地址中,所以数据0x12存放在8000H中,以此类推。

 

因为处理器可以访问的最小单元为字节(1Byte=8bit),所以32位数据0x12345678会被分为4Byte分别存储在4个字节单元中,合如下表可以看出小端模式下,内存中各个数据bit位的详情;

bit位313029282726252423222120191817161514131211109876543210
十六进制12345678
进制转换↓12345678
二进制00010010001101000101011001111000
1Byte=8bitByte 3Byte 2Byte 1Byte 0

 


因为小编自己能力水平有限,文中难免有错误或表达失误的信息,还望广大阅读者留言批评指正,谢谢。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值