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

📄 y_hdb3.java

📁 用java实现HDB3的编译码和5B6B码
💻 JAVA
字号:
import java.io.*; 
import java.util.Scanner; 
  public class Y_HDB3{
	public static void main(String[] args){

 
	   String b;int ML,L,k=0;char a;

	   Scanner s = new Scanner(System.in); 
	   System.out.print("请输入二进制码流的长度:");
	   ML=s.nextInt();	   
	   int[] Ma_Liu= new int[ML];

	   Scanner sc = new Scanner(System.in);
	   System.out.print("  请输入HDB3码:");
           b= sc.nextLine();
	   for(int i=0; i<b.length(); i++){
		a=b.charAt(i);
		if(a=='+'){Ma_Liu[k]=+1;k++;}
		  else{if(a=='-'){Ma_Liu[k]=-1;k++;}
			 else{if(a=='0'){Ma_Liu[k]=0;k++;}
				else{continue;}}}
	   }
  	   System.out.print("  输入的HDB3码:");
 	   for(int j=0;j<ML;j++){
		if(Ma_Liu[j]==1){System.out.print("+"+Ma_Liu[j]+" ");}
		  else{System.out.print(Ma_Liu[j]+" ");}
	   }
	
	   System.out.println();
	   System.out.print("输出的二进制码:");


		int a0=0,b0=0,a1=1,a2=1,b1=0,x=0;
	   for(int i=0;i<ML;i=i+1){
		if(Ma_Liu[i]==0){b0++;}
		if(Ma_Liu[i]*Ma_Liu[i]==1){a1=a2;a2=Ma_Liu[i];a0=b0;b0=0;b1++;
				if(a1*a2==1&&b1%2==0&&a0<=1){System.out.print("输入的HDB3码有误!!!");x=1;break;}
				if(a1*a2==1&&a0==2&&i>2){Ma_Liu[i-3]=Ma_Liu[i]=0;b0=b1=0;}
				if(a1*a2==1&&a0==3){Ma_Liu[i]=0;b0=b1=0;}}
		if(a0>3){System.out.print("输入的HDB3码有误!!!");x=1;break;}				
	   }


	  for(int i=0;i<ML;i++){if(x==0){System.out.print(Ma_Liu[i]*Ma_Liu[i]+" ");}}
}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -