现在有一个很大的多维数组,但是里面存放的不是0就是1
所以现在想能不能使用位数组来节省空间
请问如何来实现 数组元素类型可以是Bit类型吗

解决方案 »

  1.   

    不行,不过可以用BYTE来存储,每8个数字保存在一个BYTE的8位中;例如int a[8]={0, 0, 0, 0, 0, 0, 1, 1};
    可以保存为BYTE bits = 3;// 00000011
      

  2.   

    BYTE的存储方式是原码吗?
    如果是补码储存的话就不是3了
    我也不知道是怎么储存的:)
      

  3.   

    如下是一个字节的位节构表示方法
    struct stBIT
    {
    unsigned char a0:1;         
    unsigned char a1:1;
    unsigned char a2:1;
    unsigned char a3:1;
    unsigned char a4:1;
    unsigned char a5:1;
    unsigned char a6:1;
    unsigned char a7:1;     /*a0~a7取值只能是0或1*/
    };访问其中某成员:
    stBIT bitTest;
    bitTest.a0 = 0;如果sizeof(bitTest)其结果则应1(字节);
    struct stBIT_11
    {
    unsigned char a0:1;         
    unsigned char a1:1;
    unsigned char a2:1;
    unsigned char a3:1;};
    stBIT_11占1字节struct stBIT_12
    {
    unsigned char a0:1;         
    unsigned char a1:1;
    unsigned char a2:1;
    unsigned char a3:1;
    unsigned char a4:1;
    unsigned char a5:1;
    unsigned char a6:1;
    unsigned char a7:1;     /*a0~a7取值只能是0或1*/unsigned char a8:1;
    unsigned char a9:1; 
    };
    stBIT_12类型占2字节