목차
1. 순환 중복 검사 CRC방식에 대한 설명 및 부호화 과정
1-1 순환 중복 검사 CRC방식
1-2 CRC 부호화 과정
2. 문제와 설계도 및 풀이 방법
2.1 - M(X) 입력받음
2.2 - CRC 값 지정
2.3 - H(X) 입력받음
2.4 - T(X)=[M(X)*H(X)]XOR
2.5 - FCS=[T(X)/G(X)]XOR
2.6 - 오류 추가 사항 & S(X)=[FCS+T(X)]XOR
2.7 - S(X)=[S(X)/G(X)]XOR
2.8 - [S(X)/G(X)]XOR 나머지 '0' 판단
3. 특이 사항
4. 검토
5. 전체 프로그램 소스
6. 전체 실행 결과
7. 레포트 검사 시에 유의 사항
1-1 순환 중복 검사 CRC방식
1-2 CRC 부호화 과정
2. 문제와 설계도 및 풀이 방법
2.1 - M(X) 입력받음
2.2 - CRC 값 지정
2.3 - H(X) 입력받음
2.4 - T(X)=[M(X)*H(X)]XOR
2.5 - FCS=[T(X)/G(X)]XOR
2.6 - 오류 추가 사항 & S(X)=[FCS+T(X)]XOR
2.7 - S(X)=[S(X)/G(X)]XOR
2.8 - [S(X)/G(X)]XOR 나머지 '0' 판단
3. 특이 사항
4. 검토
5. 전체 프로그램 소스
6. 전체 실행 결과
7. 레포트 검사 시에 유의 사항
본문내용
.out.println(" ");
System.out.println(" ※ G(x)의 x의 값은 나눈 횟수 입니다. ");
//---------------------------------------FCS XOR T(X) 과정 ↓
System.out.println(" ");
System.out.println("------------- S(X)=FCS XOR T(X) ------------↓");
//---------------------------------------오류 참조 구간 ↓
do{
System.out.print(" ★★★★★ 오류을 만드시겠습니까? [1.만듬 or 0.안만듬] : ");
number = by.nextInt();
}while(number!=0 && number!=1);
if(number==1){
for(i=0; i
S[i] = 1;
}
}
else{
for(i=0,j=0; i
S[j] = T[i]^TTnum[j];
}
}
//---------------------------------------수신측 검토 과정 ↓
System.out.println(" ");
System.out.print(" S(X) : ");
for(i=0; i
System.out.print(S[i]);
}
System.out.println(" ");
System.out.println("-------------------수신자 측 검토----------------↓");
System.out.println(" ");
System.out.print(" S(X) : ");
for(i=0; i
System.out.print(S[i]);
}
System.out.println(" ");
do{
for(j=0,i=num1; j
S[i] = S[i]^Gg[j];
}
//---------------------------------------검토 중간점검 ↓
System.out.print(" S(x)/G("+num1+") : ");
for(a=0; a
System.out.print(S[a]);
}
//--------------------------------------
aa++;
System.out.println("");
do{
for(J=num1; J
}
num1++;
}while(S[num1]!=1 && Gg.length+num1!=M.length()+H.length() );
for(i=0; i
if(S[i]==1){
}
}
}while(Gg.length+num1!=M.length()+H.length());
System.out.println(" ");
System.out.println(" ※ G(x)의 x의 값은 나눈 횟수 입니다. ");
//---------------------------------------최종점검 마치고 입력받은 M값으로 다시 변환 ↓
int b = 0;
System.out.println("");
for(i=0; i
if(S[i]==0) b++;
}
if(b==M.length()+H.length()-1){
a=0; aa=0; ab=0; ac=0; ad=0; ae=0; af=0; ag=0; mmm=0;
System.out.println(" 나머지값이 모두 '0'이므로 ★메시지가 정상 적으로 전송 되었습니다.★");
System.out.println(" ");
if(Mm[0]==1){a++;}
if(Mm[1]==1){aa++;}
if(Mm[2]==1){ab++;}
if(Mm[3]==1){ac++;}
if(Mm[4]==1){ad++;}
if(Mm[5]==1){ae++;}
if(Mm[6]==1){af++;}
if(Mm[7]==1){ag++;}
a=2*2*2*2*2*2*2;
if(aa==1){aa= 1*2*2*2*2*2*2;}
if(ab==1){ab= 1*2*2*2*2*2;}
if(ac==1){ac= 1*2*2*2*2;}
if(ad==1){ad= 1*2*2*2;}
if(ae==1){ae= 1*2*2;}
if(af==1){af= 1*2;}
if(ag==1){ag= 1;}
mmm = a+aa+ab+ac+ad+ae+af+ag;
System.out.println(" ★ 전송 받은 값은 : '"+mmm +"' 입니다. ★");
}
else{
System.out.println(" 나머지 값이 모두 '0'이 아니므로 ★메시지가 전송이 실패 되었습니다.★");
}
}
}
public class Home {
public static void main(String[] args) throws IOException{
CRC by = new CRC();
by.set();
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------------------
7. report 검사 시에 유의 사항
1. 어떠한 M(X) 8bit를 입력하고 H(X)16bit를 입력하든 오류검출 순환 코드가 된다는 점.
2. 오류를 본인의 의사에 추가 할 수 있다 는 점.
3. 출력하면서도 친절한 설명 형태로 출력이 된다는 점.
---------------------------------------------------------------------------------------------------------------------------------------------------------------
이상입니다. 감사합니다.
System.out.println(" ※ G(x)의 x의 값은 나눈 횟수 입니다. ");
//---------------------------------------FCS XOR T(X) 과정 ↓
System.out.println(" ");
System.out.println("------------- S(X)=FCS XOR T(X) ------------↓");
//---------------------------------------오류 참조 구간 ↓
do{
System.out.print(" ★★★★★ 오류을 만드시겠습니까? [1.만듬 or 0.안만듬] : ");
number = by.nextInt();
}while(number!=0 && number!=1);
if(number==1){
for(i=0; i
}
}
else{
for(i=0,j=0; i
}
}
//---------------------------------------수신측 검토 과정 ↓
System.out.println(" ");
System.out.print(" S(X) : ");
for(i=0; i
}
System.out.println(" ");
System.out.println("-------------------수신자 측 검토----------------↓");
System.out.println(" ");
System.out.print(" S(X) : ");
for(i=0; i
}
System.out.println(" ");
do{
for(j=0,i=num1; j
}
//---------------------------------------검토 중간점검 ↓
System.out.print(" S(x)/G("+num1+") : ");
for(a=0; a
}
//--------------------------------------
aa++;
System.out.println("");
do{
for(J=num1; J
num1++;
}while(S[num1]!=1 && Gg.length+num1!=M.length()+H.length() );
for(i=0; i
}
}
}while(Gg.length+num1!=M.length()+H.length());
System.out.println(" ");
System.out.println(" ※ G(x)의 x의 값은 나눈 횟수 입니다. ");
//---------------------------------------최종점검 마치고 입력받은 M값으로 다시 변환 ↓
int b = 0;
System.out.println("");
for(i=0; i
}
if(b==M.length()+H.length()-1){
a=0; aa=0; ab=0; ac=0; ad=0; ae=0; af=0; ag=0; mmm=0;
System.out.println(" 나머지값이 모두 '0'이므로 ★메시지가 정상 적으로 전송 되었습니다.★");
System.out.println(" ");
if(Mm[0]==1){a++;}
if(Mm[1]==1){aa++;}
if(Mm[2]==1){ab++;}
if(Mm[3]==1){ac++;}
if(Mm[4]==1){ad++;}
if(Mm[5]==1){ae++;}
if(Mm[6]==1){af++;}
if(Mm[7]==1){ag++;}
a=2*2*2*2*2*2*2;
if(aa==1){aa= 1*2*2*2*2*2*2;}
if(ab==1){ab= 1*2*2*2*2*2;}
if(ac==1){ac= 1*2*2*2*2;}
if(ad==1){ad= 1*2*2*2;}
if(ae==1){ae= 1*2*2;}
if(af==1){af= 1*2;}
if(ag==1){ag= 1;}
mmm = a+aa+ab+ac+ad+ae+af+ag;
System.out.println(" ★ 전송 받은 값은 : '"+mmm +"' 입니다. ★");
}
else{
System.out.println(" 나머지 값이 모두 '0'이 아니므로 ★메시지가 전송이 실패 되었습니다.★");
}
}
}
public class Home {
public static void main(String[] args) throws IOException{
CRC by = new CRC();
by.set();
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------------------
7. report 검사 시에 유의 사항
1. 어떠한 M(X) 8bit를 입력하고 H(X)16bit를 입력하든 오류검출 순환 코드가 된다는 점.
2. 오류를 본인의 의사에 추가 할 수 있다 는 점.
3. 출력하면서도 친절한 설명 형태로 출력이 된다는 점.
---------------------------------------------------------------------------------------------------------------------------------------------------------------
이상입니다. 감사합니다.
소개글