Without a Break

코드변환과 패리티비트 점검 알고리즘 본문

Algorithm/컴퓨터알고리즘

코드변환과 패리티비트 점검 알고리즘

와븨 2022. 10. 31. 00:12

BCD 코드와 3초과 코드의 변환

4비트의 BCD 코드를 받아들여 4비트의 3초과 코드로 변환하여 출력하는 알고리즘

  • 배열 B는 입력인 BCD 코드 보관용 배열
  • 배열 E는 결과인 3초과 코드 보관용 배열
  • 배열 A는 2진수 0011 보관용 배열
  • 변수 C는 캐리
  • 첫 번째 반복문 : 최하위 비트부터 상위 비트로 올라가면서 덧셈을 실시한다. BCD 코드 1자리와 0011 중 1자리를 그리고 캐리를 더한다. 합이 1보다 큰지 검사하고 1보다 크면, 2로 나눈 나머지를 저장하고 상위 캐리가 있음을 표시한다. 1보다 작으면 합 그대로를 저장하고 상위 캐리가 없음을 표시한다.
  • 두 번째 반복문 : 배열 E를 차례대로 출력한다.

 


패리티 비트 검증

8비트 패리티 비트 오류 검사를 실시하는 알고리즘

  • P(0)에는 홀수 패리티(1), 짝수 패리티(0) 여부가 기록되며, P(1)부터는 데이터가 저장된다.
  • 변수 PN은 P(1)부터 P(8)까지의 8자리 가운데 데이터 값이 1인 자리의 개수를 기억하는 변수로 초깃값은 0이다.
  • 반복문 : 1번째 비트부터 8번째 비트까지 조사하는 반복문이다. K번째 자리의 데이터 비트 값을 조사하여 K번째 비트의 값이 1이면 PN을 증가시킨다. (아니면 PASS)
  • 반복문이 끝나면, 데이터 비트 값이 1인 자리수의 전체 개수를 2로 나눈 나머지를 변수 E에 저장한다.
  • 짝수 패리티인 경우 P(0)=E=0이어야 오류가 없고, 홀수 패리티인 경우 P(0)=E=1이어야 오류가 없다.