位域 大小端
程序员文章站
2022-04-22 12:11:50
...
#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
上一篇: 大小端 程序验证
下一篇: 判断机器大小端的两种实现方式
推荐阅读