如何把01串变成二进制流保存到txt中

怎么把01串变成二进制流保存到txt中
如题,如何将01串变成二进制流保存到txt中,如char *s = "010010010011011001"保存到a.txt中

------解决方案--------------------
这个不难啊,你只要每次读取8个字符 1/0 组成一个字节,然后进行运算
例: 00010010

0*128 + 0*64 + 0*32 + 1*16 + 0*8 + 0*4 + 1*2 + 0*1 = 18

你把 18 作为 byte类来处理,然后将byte[]写入文件就好啦。

注意: signed byte 和 unsigned byte的转换。这个转换取决与你的选择。
------解决方案--------------------
大概猜到LZ的意思了、、
C/C++ code

unsigned int i=0;
int counter=strlen(s);
for(;i < s && i < 32;i++)
{
     i = i << 1;
     i = i + (*(s + i) - '0');
}

fprintf(fp, "%u", i); //若s没完则继续循环

------解决方案--------------------
文件的存取单位是字节,如果不够一个字节,也占一个字节

因为是二进制文件,保存存文本文件打开时可能显示的是乱码,

最好用二进制文件编辑器去查看文件内容

C/C++ code

#include<stdio.h>
void main(int argc,char **argv)
{
    char c=0,*s = "110010010011011001";
    int i;
    FILE *f=fopen("d:\\a.bin","wb");
    if(f!=NULL)
    {
        while(*s!=0)
        {
            for(i=0;i<8;++i)
            {
                c=c<<1;
                if(*s==0)continue;
                if(*s=='1')c=c|1;
                ++s;
            }
            fwrite(&c,1,1,f);
        }
        fclose(f);
    }
}