位域 大小端

#include <iostream>

using namespace std;

struct Test
{
    unsigned short int a:5;
    unsigned short int b:5;
    unsigned short int c:6;
};
int main()
{
Test test;
test.a=7;//00111
test.b=20;//10100
test.c=3;//000011
int i=*(short*)&test;
cout<<i;//3719
return 0;
}

a:5        a=7,转化为二进制为00111

b:5        b=20,转化为二进制为10100(b的低三位为100,高两位10)

c:6         c=3,转化为二进制为000011


看例题是这样存的。。。。

可是本人在想,为啥字节内部bit不倒着存呢???也就是:

内存中存储方式为001 11100 110000 01,即0011 1100 1100 0001(位域在内存中的存储)

即0xC13C=12*(16^3)+1*(16^2)+3*16+12=49632

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值