📄 encorder.cpp
字号:
#include "iostream.h"
#include "stdio.h"
#include <stdlib.h>
#include <time.h>
#define G0 1
#define G1 5
#define G2 7
unsigned int random0_1() //产生随机的0,1数据
{int i;
srand( (unsigned)time( NULL ) );
return rand()%2;
}
unsigned int partab(int data1)
{
return (data1&1)^(data1>>1&1)^(data1>>2&1);
}
void main()
{
int *data,*symbol;
int t,i,s,j,encorder=0,nbyte;
unsigned int a0,a1,a2,a3;
unsigned int encstate=0;
int c1,c2,c3,d1,d2,d3;
int A=0xc3;
int B[5]={0,0,0,0,0};
static int
A0[3]={0XFF,0XFF,0XFF},
A1[3]={0XFF,0XFF,0XFF},
A2[3]={0X00,0X0f,0Xff};
data=&A;
symbol=&B[0];
nbyte=1;
cout<<*data<<'\n';
for(i=0;i<8;i++)
{
j=*data>>i;
cout<<"j="<<j<<'n';
cout<<"data="<<*data<<'\n';
}
cout<<"请输入s的值=";
cin>>s;
cout<<"\n";
if(s==0)
{
a0=A0[s];
a1=A1[s];
a2=A2[s];
}
else
{
a0=A0[s]^A0[s-1];
a1=A1[s]^A1[s-1];
a2=A2[s]^A2[s-1];
}
while(nbyte--!=0)
{
for(i=7;i>=0;i--)
{
encstate=(encstate<<1)|((*data>>i)&1);
cout<<"data="<<*data<<"\n";
cout<<"encstate="<<encstate<<'\n';
d1=encstate&G0;
d2=encstate&G1;
d3=encstate&G2;
c1=partab(d1);
c2=partab(d2);
c3=partab(d3);
cout<<c1<<c2<<c3<<'\n';
if((a0>>i)&1){*symbol++=c1; encorder++;}
if((a1>>i)&1){*symbol++=c2; encorder++;}
if((a2>>i)&1){*symbol++=c3; encorder++;}
}
}
for(i=0;i<encorder-1;i++)
cout <<B[i];
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -