그레이 코드란?
자료를 표현하는 방식 중 하나이다.
I/O A/D 변환기, 주변장치 등에서 숫자를 표현할 때 사용된다.
-가중치가 없는 코드이기 대문에 연선에는 부적당하지만, 아날로그 디지털 변환기나 입출력 장치 코드로 주로 쓰이며 연속되는 코드들 간에 하나의 비트만 변화하여 새로운 코드가 된다
위 사진을 보면 알 수 있듯이 2진수의 경우 하나의 비트간에 하나의 비트만 다른 것이 아니지만 그레이 코드는 이웃하는 코드 간에 한 비트만 다릅니다.
2진 코드를 그레이 코드로 변환 방법
1) 2진 코드의 첫 번째 비트는 그대로 사용합니다.
2) 이후 두 번째 비트부터 앞 비트와의 xor값을 사용합니다.
ps. xor은 둘 중 하나가 참이거나 거짓이면 참, 비교하는 둘 다 참이거나 거짓일 때 거짓이 나옵니다.
즉 첫번째는 위에 사진에 1이 나오기 때문에 1을 넣어줍니다. 그 이후에는 뒤에 수와 앞에 수를 비교해서 구해줍니다.
1 0 이 나오므로 1 출력, 0 0 이 나오므로 0 출력, 0 1 이 나오므로 1출력, 1 1 이 나오므로 0 출력, 1 0 이 나오므로 1 출력
따라서 1 1 0 1 0 1로 바꿔지게 됩니다.
그레이 코드를 2진 코드로 변환하는 방법
1) 첫 비트는 그대로 사용합니다.
2) 두 번째 비트부터 이진 코드의 구해놓은 비트와 xor 연산을 사용해 출력합니다.
2진 코드에서 그레이 코드로 변환하는 과정은 옆에 2진 코드 내에서 양옆의 값을 비교했다면 gray코드는 대각선으로 비교한다고 보시면 됩니다.
첫 번째는 그대로 출력하기에 1이 출력되지만 이후 구해진 2진수 비트와 그레이 코드의 다음값으 비교해서 차례대로 계산해 나가는 것입니다. 1 1 이 나오므로 0, 0 0 이 나오므로 0, 0 1 이 나오므로 1, 1 0 이 나오므로 1, 1 1 이 나오므로 0이 됩니다.
따라서 1 0 0 1 1 0 이 나오는 것입니다.
XOR 진리표
입력 | 출력 | |
A | B | F |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
그레이코드의 장점
그레이코드는 비트가 1비트씩 다르기 때문에 2진코드를 사용할 때보다 오차가 적습니다. 하나의 비트가 틀렸을 경우를 예를들어 설명해보겠습니다.
2진코드
정상 : 0011 ( 3 )
에러 : 0111 ( 7 )
그레이코드
정상 : 0010 ( 3 )
에러 : 0110 ( 4 )
이렇게 그레이 코드는 오차가 적기 때문에 여러 장치에서 사용되고 있는 것입니다.
'IT 프로그래밍 > 논리회로' 카테고리의 다른 글
[논리회로] 3상태 버퍼(3-STATE 버퍼) (0) | 2024.04.07 |
---|---|
[논리회로] 패리티 비트(Parity Bit) (0) | 2024.04.07 |
[논리회로] 2진수 음수 표현법 부호의 절대치 1의보수, 2의보수 (0) | 2024.04.03 |
[논리회로] 진법(2진수, 16진수, 8진수, 10진수) (0) | 2024.04.03 |
디지털 논리회로 주기 dip, soic, plcc 분석 (0) | 2024.03.07 |