送分!怎么输出或者得到位数据

送分!如何输出或者得到位数据?
C/C++ code

typedef struct myStruct
{
    int OneBit :1;
}Bit_t;
int main()
{
  Bit_t stVar = 0;
  int arr[2] = {0x40,0x11};
  stVar.OneBit = arr[0] & 0x40;
}


怎么输出stVar.OneBit的值??我用printf()为0的。

------解决方案--------------------
确实是个0啊,1比特的数据表达范围就0和1,你0x40&0x40=0x40,最低位是0,赋给了OneBit

------解决方案--------------------
标准设备不能输出结果吗?
------解决方案--------------------
你这样本来就应该得到0的啊。
------解决方案--------------------
stVar.OneBit =(arr[0] == 0x40 ? 1 : 0);
------解决方案--------------------
C/C++ code

typedef struct myStruct
    {
        unsigned int OneBit :1;
    }Bit_t;

    Bit_t stVar;
    
    stVar.OneBit = 0;
    printf("%d\n",stVar.OneBit);

    stVar.OneBit = 1;
    printf("%d\n",stVar.OneBit);

------解决方案--------------------
01000000
00010001 按位与

00000000 则stVar.OneBit为0