b0代表bit0,b7代表bit7
#include <stdio.h>
#include <stdint.h>
typedef union
{
struct
{
uint8_t b0:1;
uint8_t b1:1;
uint8_t b2:1;
uint8_t b3:1;
uint8_t b4:1;
uint8_t b5:1;
uint8_t b6:1;
uint8_t b7:1;
}Branch;
uint8_t Master;
}STATUS;
int main()
{
STATUS a = {0};
printf("%x\n",a.Master);
printf("%d",a.Branch.b7);
printf("%d",a.Branch.b6);
printf("%d",a.Branch.b5);
printf("%d",a.Branch.b4);
printf("%d",a.Branch.b3);
printf("%d",a.Branch.b2);
printf("%d",a.Branch.b1);
printf("%d",a.Branch.b0);
printf("\n");
a.Master = 0xff;
printf("%x\n",a.Master);
printf("%d",a.Branch.b7);
printf("%d",a.Branch.b6);
printf("%d",a.Branch.b5);
printf("%d",a.Branch.b4);
printf("%d",a.Branch.b3);
printf("%d",a.Branch.b2);
printf("%d",a.Branch.b1);
printf("%d",a.Branch.b0);
printf("\n");
a.Branch.b1 = 0;
printf("%x\n",a.Master);
printf("%d",a.Branch.b7);
printf("%d",a.Branch.b6);
printf("%d",a.Branch.b5);
printf("%d",a.Branch.b4);
printf("%d",a.Branch.b3);
printf("%d",a.Branch.b2);
printf("%d",a.Branch.b1);
printf("%d",a.Branch.b0);
printf("\n");
return 0;
}
结果:
0
00000000
ff
11111111
fd
11111101