处理器的大小端及位序

大端Big Endian:数据的高字节存储到低位地址中
小端little Endian:数据的低字节存储到低位地址中
举例说明:
32位16进制数据为=0x12345678,

大端存储

地址 0x0 0x1 0x2 0x3
数据 0x12 0x34 0x56 0x78
MSB LSB

小端存储

地址 0x0 0x1 0x2 0x3
数据 0x78 0x56 0x34 0x12
LSB MSB

MSB是Most Significant Bit的缩写,指最高有效位
LSB是Least Significant Bit的缩写,指最低有效位。

处理器基本上都是字节编址,无法直接操作位,但是在C语言中,可以用结构体来实现对位的操作,其语法规定:先声明的成员位于低地址,后声明的成员位于高地址。

举例,以小端处理器为例,
struct onebyte {
unsigned char bt0:1,
bt1:1,
bt2:1,
bt3:1,
bt4:1,
bt5:1,
bt6:1,
bt7:1;
};

main{
ch= 0x98;
struct onebyte byte=(struct onebyte)&ch;
printf(“bt0 is :%u\n”,byte->bt0);
printf(“bt1 is :%u\n”,byte->bt1);
printf(“bt2 is :%u\n”,byte->bt2);
printf(“bt3 is :%u\n”,byte->bt3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值