📄 y_hdb3.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 + -