📄 hdb3.cpp
字号:
//copyright:chaoswizard
//edit date:2008-01-03
#include"stdio.h"
#include"iostream.h"
typedef struct code
{
char x;
char y;
}code;
void main()
{ cout<<"HDB3码转换程序:\tcopyright:chaoswizard \n\t\tedit date:2008-01-03 "<<endl;
cout<<"输入原码序列,以$结束"<<endl;
code C[100];
char ch;
int flag=1,count=0;
int i=0;
while(flag==1)
{
ch=getchar();
if(ch!='$')
{
C[i].y=ch;
i++;
}
else flag=0;
}
for(int j=0;j<i;j++)
C[j].x=' ';
cout<<"原码为:"<<endl;
for( j=0;j<i;j++)
cout<<C[j].x<<C[j].y<<" ";
count=0;
for( j=0;j<i;j++)
{
if(C[j].y=='0')count++;
if(C[j].y=='1')count=0;
if(count==4)
{
count=0;
C[j].y='V';
}
}
//添加破坏脉冲和附加脉冲;
count=0;
for(j=0;j<i;j++)
{
if(C[j].y=='V')
{
while(j<i)
{
j++;
if(C[j].y=='1')
count++;
if(C[j].y=='V')
if(count%2==0)
{
C[j-3].y='B';
count=0;
}
else count=0;
}
}
}
count=0;
for(j=0;j<i;j++)
{
if(C[j].y=='V')
{
count=j;
while((C[count-1].y=='0')&&(count>0))
count--;
if(C[count-1].x=='-')C[j].x='-';
if(C[count-1].x==' ')C[j].x=' ';
}
if((C[j].y=='B')||(C[j].y=='1'))
{
count=j;
while((C[count-1].y=='0')&&(count>0))
count--;
if(C[count-1].x=='-')C[j].x=' ';
if(C[count-1].x==' ')C[j].x='-';
}
}
cout<<endl<<"HDB3码为(无符号为正脉冲,负号为负脉冲):"<<endl;
for( j=0;j<i;j++)
cout<<C[j].x<<C[j].y<<" ";
cout<<"\n输入@结束"<<endl;
while(flag==0)
{
ch=getchar();
if(ch!='@')
{
}
else flag=1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -