에러 검출 코드

2023. 1. 19. 15:37computer science

BCD 코드

  • 10진수 1자리 수를 2진수 4Bit로 표현한다.
  • 4Bit의 2진수 각 Bit가 8(2^3), 4(2^2), 2(2^1), 1(2^0)의 자릿값을 가지므로 8421 코드라고도 한다.
  • 대표적인 가중치 코드(2진수 각 자리가 고유한 값을 갖는 코드)
  • 문자 코드인 BCD에서 Zone 부분을 생략한 형태
  • 10진수 입.출력이 간편하다.

ex) 다음 Boolean 함수를 간략화하여라.

1 -> 0001, 2 -> 0010, 5 -> 0101

Excess-3 코드

  • BCD + 3
  • 대표적인 자기 보수 코드, 비가중치 코드

Gray 코드

  • BCD 코드의 인접하는 비트를 XOR 연산하여 만든 코드, 입출력장치 코드로 유용하게 사용한다.
  • 1Bit만 변화시켜 다음 수치로 증가시키므로 하드웨어적인 오류가 적어 하드웨어 동작을 제어하기 적합하다.
  • 연속되는 2개의 숫자를 표현한 코드에서 한 비트를 변경하면 새로운 코드가 되기 때문에 아날로그-디지털(A/D) 변환, 데이터 전송에 주로 사용한다.

2진수를 Gray Code로 변환하는 방법

  1. 첫 번째 그레이 비트는 2진수 비트를 그대로 내려쓴다.
  2. 2번째 Gray Bit부터는 변경할 2진수의 해당 번째 비트와 그 왼쪽의 비트를 XOR 연산하여 쓴다.

Gray Code를 2진수로 변환하는 방법

  1. 첫 번째 2진수 비트는 그레이 비트를 그대로 내려쓴다.
  2. 2번째 2진수 비트부터는 왼쪽에 구해 놓은 2진수 비트와 변경할 그레이 코드의 해당 번째 비트를 XOR 연산하여 쓴다.

패리티 검사 코드

  • 코드의 오류를 검사하기 위해 데이터 비트 외에 1Bit의 패리티 체크 비트를 추가하는 것으로 1Bit의 오류만 검출할 수 있다.
  • 1의 개수에 따라 짝수(Even, 우수) 패리티와 홀수(Odd, 기수) 패리티 방법이 있다.

Even parity 짝수 패리티

Even 패리티는 코드에서 1인 비트의 수가 짝수가 되도록 0이나 1을 추가한다.

 

ex) 짝수 패리티를 추가하시오.

10100001 -> 10100001->  1의 개수가 홀수이므로 1을 추가하여 짝수로 만든다.

11100010 -> 11100010-> 1의 개수가 짝수이므로 0을 추가한다.

Odd Parity 홀수 패리티

Odd 패리티는 코드에서 1인 비트의 수가 홀수가 되도록 0이나 1을 추가한다.

 

ex) 홀수 패리티를 추가하시오.

10100001 -> 101000011 -> 1의 개수가 홀수이므로 0을 추가한다.

11100010 -> 111000100 -> 1의 개수가 짝수이므로 1을 추가하여 홀수로 만든다.

해밍 코드

  • 오류를 스스로 검출하여 교정이 가능한 코드
  • 2Bit의 오류를 검출할 수 있고, 1Bit의 오류를 교정할 수 있다.
  • 1, 2, 4, 8, 16 ... 2^n 번째는 오류 검출을 위한 패리티 비트

'computer science' 카테고리의 다른 글

플립플롭  (1) 2023.01.19
메모리에 대한 기본 상식  (0) 2023.01.19
불대수와 논리게이트  (0) 2023.01.19
보수  (0) 2023.01.19
Protocol & OSI 7 Layer  (0) 2022.11.13