#include <stdio.h>
// 二进制打印函数声明
void prtBin(unsigned int number);
// 位段
struct U0{
unsigned int leading : 3;
unsigned int FLAG1 : 1;
unsigned int FLAG2 : 1;
int trailing : 27;
};
int main () {
struct U0 uu;
uu.leading = 2;
uu.FLAG1 = 0;
uu.FLAG2 = 1;
uu.trailing = 0;
printf("sizeof(uu)=%lu\n",sizeof(uu));
prtBin(*(int*)&uu);
return 0;
}
void prtBin(unsigned int number){
scanf("%d",&number);
//number = 0xaaaaaaaa;
unsigned mask = 1u<<31;//0x8000 0000 0000 0000...(32)
for(;mask;mask>>=1){
printf("%d",number & mask?1:0); // a & b 逻辑与(按位运算)
}
//JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。
printf("\n");
}