// 그레이 코드 - 연속된 값 사이에서 단 1비트만 바뀌는 2진수 체계
연속된 두 값 사이에서 항상 한 비트만 변경됩니다.
아날로그-디지털 변환 시 발생하는 오류를 줄여 줍니다.
첫 번째 값과 마지막 값도 한 비트만 다른 순환 구조를 가집니다.
그레이 코드(반사 이진 코드)는 연속된 두 값이 항상 한 비트만 다르도록 정의된 2진수 체계입니다. 각 비트를 바로 앞 비트와 XOR 연산하여 생성합니다. 이러한 특성 덕분에 위치 인코더와 같은 장치에서 전이 오류를 줄이는 데 적합합니다.
Decimal | Binary | Gray Code 0 | 0000 | 0000 1 | 0001 | 0001 2 | 0010 | 0011 3 | 0011 | 0010 4 | 0100 | 0110 5 | 0101 | 0111 6 | 0110 | 0101 7 | 0111 | 0100 참고: 인접한 그레이 코드 사이에서는 항상 한 비트만 변경됩니다
그레이 코드는 반사 이진 코드라고도 불리며, 연속된 값이 항상 한 비트만 다르도록 정의된 2진 코드입니다. 전이 중간 상태에서 잘못된 값을 읽는 문제를 줄이기 위해 디지털 시스템에서 널리 사용됩니다.
이진수에서 그레이 코드로 변환하는 방법: 1) 최상위 비트(MSB)는 그대로 둡니다. 2) 그 이후 각 비트에 대해 현재 비트와 직전 비트를 XOR 합니다. 수식: G[i] = B[i] XOR B[i-1]. 예를 들어, 이진수 1011은 그레이 코드 1110이 됩니다.
일반적인 이진 카운트에서는 여러 비트가 동시에 변경될 수 있어, 7(0111)에서 8(1000)으로 넘어갈 때 중간의 잘못된 값이 읽힐 수 있습니다. 그레이 코드는 한 단계마다 한 비트만 바뀌므로 로터리 인코더에서 보다 안정적인 출력을 제공합니다.
그레이 코드는 로터리 인코더, 카르노 맵 기반 논리 최소화, 디지털 통신의 오류 정정, 유전 알고리즘, A/D 변환기 등 단일 비트 전이가 중요한 다양한 시스템에서 사용됩니다.