/*此程序主要实现二进制下任意长二进制数据的海明校验以及纠错,由作者单独开发*/
#include<stdio.h>
#include <math.h>
#include<stdlib.h>
#include <cstring>
#include <iostream>
using namespace std;
int num,num0,num1;//输入长度num为编码被校验位,num1为num备份,num0为译码被校验位
int *charf;// 校验输入
int *charf2;//charf的校验
int *charf1;//charf的备份
int *charf3;//charf2的备份
int *num2_array;//num2的数组
int *num2_2_array;//num2_2的数组
int num2=0;//编码校验位
int num2_2;//译码校验位
int **list;//横表
int **finish_list;//纵表
//void list_();
//void finish_list_();
//void translate(int*);
//void correct1();
//void translate2(int*);
void input()
{
int i;
printf("请输入零一串长度");
scanf("%d",&num);
num1=num;
//num0=num;
charf1=new int[1000];
charf=new int[1000];
printf("请输入零一串");
getchar();
char cc;
for(i=0;i<num;i++)
{
scanf("%c",&cc);
*(charf+i)=cc-'0';
*(charf1+i)=*(charf+i);
}
}//input num
void getnum2()
{
for(;(int)pow(2.0,num2)-num2-1<num;num2++);
printf("校验位有%d位\n",num2);
}//求校验位num2
void insert2(int *charf_like)