⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hdb3.cpp

📁 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 + -