//按位写
//pVoid,要写入位数据的内存首地址
//iIndex,在第几位处写入
//dwData,要写入的数据
//nBits,写入的数据占几位BOOL WriteBits(void* pVoid,int iIndex,DWORD dwData,int nBits)
{...
}
//例子
DWORD mem[10];
int iIndex = 0;//从第一位开始写
//第一位写1
WriteBits(mem,iIndex,1,1);
iIndex+=1;
//第二位写0
WriteBits(mem,iIndex,0,1);
iIndex += 1;
//第三,四,五位写7
WriteBits(mem,iIndex,7,3);
iIndex += 3;
//写32位的一个整数
WriteBits(mem,iIndex,dwVariable/*一个变量*/,32);
iIndex += 32;

解决方案 »

  1.   

    for()
    {
       // >>
       // <<
      .....
    }
      

  2.   

    我知道是用位运算, 但我没有时间,希望哪位帮我把BOOL   WriteBits(void*   pVoid,int   iIndex,DWORD   dwData,int   nBits) 
    {... 

    补上几句,
      

  3.   

    考虑效率的话,可以内嵌汇编。否则,考虑运作方便的话,可以把字节定义为一个结构,比如struct myByte{char bit0:1;char bit1:1;...char bit7:1}。
      

  4.   

    我的这个东西不是考试题,也不是吃饱了没事做凭空想出来的,而是要用的
    阴历每个月有多少天,是30天还是29天,把今年的12个月的阴历天数写进去,每次写一个位(0,or 1),12遍写12位,以及还要写闰月情况,24个节气的情况。把几十年的数据存下来,又要轻松读出来。不用这个WriteBits() and ReadBits(),那还用什么?