我想把一个字节的每一位分别插到一个文件的相邻字节的最低位,请问这个怎么实现?谢谢

解决方案 »

  1.   

    下面两个函数来自
    http://www.21icsearch.com/pmcu/fxzl/cbitop.htmuchar bitclr(uchar num,uchar bit) /*清除某一位*/{uchar bit_value[]={1,2,4,8,16,32,64,128};return num&~bit_value[bit];}uchar bitset(uchar num,uchar bit) /*设置某一位*/{uchar bit_value[]={1,2,4,8,16,32,64,128};return num|bit_value[bit];}
    FILE *pfile,8pfile2;
    ...
    if(feof(pFile))
    exit(-1);BYTE b=fgetc();
    BYTE first=b>>7<<7;
    BYTE last=b<<7>>7;
    fputc(pFile2);while(!feof(pfile))
    {
    if(!feof(pfile))
    {
       BYTE b2=fgetc();
       BYTE btmp=b2;
       b2=bitset(bitclr(b2,1),first);
       b2=bitset(bitclr(b2,7),last);
       first=btmp>>7<<7;
       last=btmp<<7>>7;
    }
    }
    //未测试,如果最后一个字节还需要用第一各字节,自己处理一下