读书笔记:大小端模式对位域的影响

一、位域

有些信息在存储时不占用一个完整的字节,而只需要占用几个甚至一个二进制位。为节省存储空间,并使处理简便,C语言提供了一种数据结构,成为”位域“或”位段“。C与C++允许指定占用特定位数的结构成员。字段的类型应为整型或枚举,接下来是冒号,冒号后面是一个数字,它指定了使用的位数,且可以使用没有名称的字段来提供间距。每个成员都被成为位字段。下面是一个例子。

struct reg{
    unsigned int SN: 4;
    unsigned int :4;
    bool good:4;
};
//初始化
reg r={14, true};

二、大端小端对位域的影响。

定义的数据结构中包含bit位域,将按照一下规则存放。

  1. 低字节都存放在低地址;
  2. 大端模式首先为高bit位分配空间,小段模式首先为低bit位分配空间;
  3. 大端模式首先存放地址的高bit位,小端模式首先存放地址的低bit位;
举例:
struct {
    short bit1:4;
    short bit2:9;
    short bit3:3;
};

大端模式下:
bit1(4位,顺序为a0a1a2a3) bit2(高4位)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值