现在的位置: 首页 > 综合 > 正文

用BitSet创建一个01流的二进制文件

2013年12月11日 ⁄ 综合 ⁄ 共 1153字 ⁄ 字号 评论关闭

 bitset<8> bufferzero;
  bitset<8> bufferone;
        int a=-1; int b=-1;
  for(int i=0;i<8;i++)
  {
    bufferzero[i]=0;
    bufferone[i]=1;
  
  //memset(bufferzero,0,1);

  //memset(bufferone,1,1);
  FILE * pFile=fopen(filename,"wb");       
  
  //文件头64字节
  char Header[64];
  for(int i=0;i<64;i++)
  {
    if(!(i%2))
           memcpy(&Header[i],&bufferzero,1);
    else
     memcpy(&Header[i],&bufferone,1);
  }
        bitset<8> tempBit;
  for(int i=0;i<64;i++)
  {
   if(!(i%2))
   {
    memcpy(&tempBit,&Header[i],1);
    unsigned long a=tempBit.to_ulong();
    int  b=a;
    printf("%d\n",b);
   }
   else
   {
    memcpy(&tempBit,&Header[i],1);
    unsigned long a=tempBit.to_ulong();
    int b=a;
                printf("%d\n",b);
   }
  }
  fwrite(Header,64,1,pFile);
 
  char Page[4096];
     for(int i=0;i<4096;i++)
  {
           if(!(i%2))        
   memcpy(&Page[i],&bufferzero,1);
     else
      memcpy(&Page[i],&bufferone,1);
  }
  fwrite(Page,4096,4,pFile); 
       
  char PageCach[4096];
    
  for(int i=0;i<4096;i++)
  {
   if(!(i%2))        
    memcpy(&PageCach[i],&bufferzero,1);
   else
    memcpy(&PageCach[i],&bufferone,1);
  }
  
  fwrite(PageCach,4096,5,pFile); 
        fwrite(PageCach,4096,1,pFile);
  fclose(pFile);

抱歉!评论已关闭.