|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2009-10-12 12:20:45
|
显示全部楼层
一下是我的程序
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void qufan(char*a)
{if((*a)=='n')(*a)='u';
else if((*a)=='u')(*a)='n';
}
int hdb3(char *s,int l)
{char b='u',v='u',c;
int z=0,i=0;
while(1)
{if(i>=1){return 0;}
c=s;
if(c=='1'){z=0;qufan(&b);s=b;}
else if(c=='0'){z++;
if(z<4){s='0';}
else if(z==4){if(b!=v){v=b;s=v;}
else if(b==v){qufan(&b);s[i-3]=b;v=b;s=v;}
z=0;
}
else return 1;
}
else return 1;
i++;
}
}
int AMI(char*s,int l)
{char b='u',c;
int i=0;
while(1)
{if(i>=1){return 0;}
c=s;
if(c=='0'){s='0';}
else if(c=='1'){qufan(&b);s=b;}
else return 1;
i++;
}
}
void main()
{char s[102],a[102];
int l,w;
printf("\t\t HDB3码解码!!\n\n");
printf("注:“0”代表: 0电平“u”代表: 负电平“n”代表: 正电平\n\n\n");
while(1)
{
printf("请您输入数据:\n");
scanf("%s",s);
flushall();
l=strlen(s);
strcpy(a,s);
w=hdb3(s,l);{printf("数据可能有错误,请您检查后重新输入.....\n\n");continue;}
printf("HDB3编码:\n");printf("%s\n",s);
w=AMI(a,l);
if(w==1) {printf("数据可能有错误,请您检查后重新输入.....\n\n");continue;}
else{printf("AMI编码:\n");printf("%s\n",a);}
printf("\n");
}
}
以上便是我的程序,请高手们帮我注释下每行的意思,或者重要语句行的意思,方便我理解,谢谢,辛苦大家了! |
|