主题:请教一个问题,在vc中怎么输出二进制数据的方波?
最后的hdb3码用方波输出怎么实现?[code=c]
请填写代码
[/code]#include<time.h>
#include<stdlib.h>
#include<iostream.h>
void main()
{
int a[20];char b[20];
int i,j,n,k;
cout<<"请选择:"<<"1.随机生成数列"<<"2.手动输入"<<endl;
cin>>k;
if(k==1)
{
srand((int)time(0));
cout<<"随机数列为:";
for(i=0;i<20;i++)
{
j=(int)(2.0*rand()/(RAND_MAX+1.0));
cout<<j;
a[i]=j;
}//以上是产生二进制的随机数列
cout<<endl;}
if(k==2)
{
cout<<"input 20 numbers:";
cin>>b;
for(j=0;j<20;j++)
{
if(b[j]=='0')
a[j]=0;
if(b[j]=='1')
a[j]=1;
}
}//以上将手动输入的char型转成int型
for(i=-1,j=0;j<20;j++)
{
if(a[j]==1)
{
a[j]=-i;i*=-1;
}
}
cout<<"AMI: ";//输出ami码
for(j=0;j<20;j++)
{
if(a[j]==0)
cout<<" "<<a[j];
if(a[j]==1)
cout<<" +"<<a[j];
if(a[j]==-1)
cout<<" "<<a[j];
}
cout<<endl;
for(i=-1,j=0;j<=16;j++)
{
if((a[j]||a[j+1]||a[j+2]||a[j+3])==0)
{
a[j+3]=-i;i*=-1;
if(a[j-1]-a[j+3]!=0)
{
a[j]=a[j+3];
for(n=j+4;n<20;n++)
a[n]*=-1;
}
j+=3;
}
}//生成hdb3码
cout<<"前一破坏点为负"<<endl<<"HDB3:";
for(j=0;j<20;j++)
{
if(a[j]==0)
cout<<" "<<a[j];
if(a[j]==1)
cout<<" +"<<a[j];
if(a[j]==-1)
cout<<" "<<a[j];
}
cout<<endl;
}