#include<iostream>
#include<math.h>
using namespace std;

#define bit(b,n) (int)(((b) & (1 << (n))) >> (n))

void main()
{
  char *str="关于基于XML的电子公文格式规范,电子公文是以数字形式存储于磁带,磁盘,光盘等媒体,依赖计算机系统阅读,处理并可在通信网络上传输的公文。";
  int len=strlen(str);
  int *s2i=new int[len*8];

  for(int i=0;i<len*8;i++)
  {
    s2i[i]=0;

  }

  for(int k=0;k<len;k++)
  {
    for(int m=0;m<8;m++)
    {
      s2i[k*8+m]=bit(*(str+k),m);//字符串转二进制存在数组中
    }
  }

  char *p=new char[len];
  int *a=new int[len];

  for(int l=0;l<len;l++)
  {
    a[l]=0;
  }

  for(int k2=0;k2<len;k2++)
  {
    for(int m2=0;m2<8;m2++)
    {
      a[k2]+=(s2i[k2*8+m2]*pow(2,m2));//数组累加得到字符串
      p[k2]=a[k2];
    }    
  }

  cout<<p<<endl;
}