에러 검출 코드
2023. 1. 19. 15:37ㆍcomputer 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로 변환하는 방법
- 첫 번째 그레이 비트는 2진수 비트를 그대로 내려쓴다.
- 2번째 Gray Bit부터는 변경할 2진수의 해당 번째 비트와 그 왼쪽의 비트를 XOR 연산하여 쓴다.
Gray Code를 2진수로 변환하는 방법
- 첫 번째 2진수 비트는 그레이 비트를 그대로 내려쓴다.
- 2번째 2진수 비트부터는 왼쪽에 구해 놓은 2진수 비트와 변경할 그레이 코드의 해당 번째 비트를 XOR 연산하여 쓴다.
패리티 검사 코드
- 코드의 오류를 검사하기 위해 데이터 비트 외에 1Bit의 패리티 체크 비트를 추가하는 것으로 1Bit의 오류만 검출할 수 있다.
- 1의 개수에 따라 짝수(Even, 우수) 패리티와 홀수(Odd, 기수) 패리티 방법이 있다.
Even parity 짝수 패리티
Even 패리티는 코드에서 1인 비트의 수가 짝수가 되도록 0이나 1을 추가한다.
ex) 짝수 패리티를 추가하시오.
10100001 -> 101000011 -> 1의 개수가 홀수이므로 1을 추가하여 짝수로 만든다.
11100010 -> 111000100 -> 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 |