变量的地址空间

int a=0x12345678;

char b[4]={0,1,2,3};

memcpy(b,&a,4);//由a低地址的数据给b的低地址数据

b[0]=0x78    b[1]=0x56   b[2]=0x34    b[3]=0x12 

可以看出,int变量低位数据存在4个字节地址空间的低地址位

memcpy(&a,b,4);

a=0x12340100

数组的地址是0最小,后面的按变量占地址位递增

这是在STM32 KEIL软件程序,数据是小端模式,即低位在前,高位在后

大端场景下根据定义的顺序,从 MSB 开始排布到 LSB。
小端场景下根据定义的顺序,从 LSB 开始排布到 MSB。

union {
    unsigned int  value;
    unsigned char byte[4];
    struct {
        int A:7;
	    int B:10;
	    int C:3;
	    int D:2;
	    int E:9;
    } field;
} v;



LEGEND: X = not used, MS = most significant, LS = least significant

Big-endian register																								
MS														      LS
A A	A A	A A	A B	B B	B B	B B	B B	B C	C C	D D	E E	E E	E E	E E	E X
6 5	4 3	2 1	0 9 8 7 6 5	4 3	2 1	0 2	1 0	1 0	8 7 6 5	4 3	2 1	0 X
31															  0

Big-endian memory																								
Byte 0	        Byte 1	        Byte 2	        Byte 3
A A	A A A A A B B B B B B B B B B C C C D D E E E E	E E	E E	E X
6 5	4 3	2 1	0 9	8 7	6 5	4 3	2 1	0 2	1 0	1 0	8 7	6 5	4 3	2 1	0 X

Little-endian register																								
MS												             LS
X E	E E	E E	E E	E E	D D	C C	C B	B B	B B	B B	B B	B A	A A	A A	A A
X 8	7 6	5 4	3 2	1 0	1 0	2 1	0 9	8 7	6 5	4 3	2 1	0 6	5 4	3 2	1 0
31															  0

Little-endian memory																								
Byte 0	        Byte 1	        Byte 2	        Byte 3
B A	A A	A A	A A	B B	B B	B B	B B	E E	D D	C C	C B	X E	E E	E E	E E
0 6	5 4	3 2	1 0	8 7	6 5	4 3	2 1	1 0	1 0	2 1	0 9	X 8	7 6	5 4	3 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值