-
[문제해설] 그레이 코드(Gray Code) "0111"을 이진(Binary) 코드로 변환하시오.전자계산기조직응용기사/실기 필답형 기출문제 해설 2021. 8. 25. 10:13반응형
전자계산기조직응용기사 실기 필답형 기출문제 (논리회로-그레이 코드) - 2004년1회, 2007년3회
그레이 코드(Gray Code) "0111"을 이진(Binary) 코드로 변환하시오.
- 문제 해설 -
그레이 코드는 단골 문제입니다. 이 문제처럼 코드 변환을 주로 묻고, 필답형에서는 회로를 구성하는 문제로 출제되기도 합니다.
그레이 코드(Gray code)는 한 숫자에서 다음 숫자로 변할 때 코드의 단 한 비트만 변하는 코드입니다. 목적은 2개 이상의 비트가 변경될 시, 미세한 전자 이동속도의 차이 등의 이유로 오류나 애매함이 발생하는 것을 방지하는 것입니다.
10진수 2진수 그레이 코드 0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
150000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
11110000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000위 표는 10진수를 4비트로 2진수와 그레이 코드를 표현한 것입니다.
어느 카운터가 십진수 7에서 8로 변환하는 상황을 떠올려봅시다. 그럼 2진수의 경우 '0111'에서 '1000'으로 변경이 됩니다. 4개의 비트 값이 모두 변경이 돼야 됩니다. 한편 그레이 코드는 '0100'에서 '1100'으로 한 비트만 변경이 됩니다.
이러한 목적과 원리를 이해하고 계시면 공식이 헷갈리지 않습니다.
우선 2진수에서 그레이 코드로 변경하는 법을 알아보겠습니다.
2진수를 그레이 코드로 변환하는 회로도는 위와 같습니다. XOR 게이트가 사용되고 있습니다. 이 회로도로 계산하는 과정을 살펴보겠습니다.
위 예시 그림은 2진수 "0011"을 그레이 코드로 변경하는 과정입니다. 먼저 제일 좌측 비트는 그대로 그레이 코드의 제일 좌측 비트로 하고, 바로 오른쪽 비트와 XOR 연산을 해서 그레이 코드의 왼쪽에서 두 번째 비트를 구합니다. 이런 방식으로 3번째 4번째 그레이 코드를 구하면 그레이 코드는 "0010"이 됩니다. 회로도 그대로의 연산입니다.
이번에는 그레이 코드를 2진수로 변경하는 법을 알아보겠습니다.
그레이 코드를 2진수로 변환하는 회로도는 위와 같습니다. 이 회로도대로 계산하는 과정을 살펴보겠습니다. 이 문제의 답을 구하는 과정이기도 합니다.
위 예시 그림은 그레이 코드 "0111"을 2진수로 변경하는 과정입니다. 맨 좌측 비트는 그레이 코드로 변경할 때와 같이 그대로 2진수 맨 좌측 비트 값이 됩니다. 하지만 그다음 비트부터는 2진수로 변경된 코드와 그레이 코드의 그다음 오른쪽 코드와 XOR 연산을 해서 2진 코드를 구합니다. 이런 과정을 걸쳐서 그레이 코드 "0111"은 2진 코드 "0101"로 변경이 되며, 이 문제의 정답입니다.
이러한 그레이 코드의 단점은 그레이 코드 자체로는 연산이 불가능하다는 것입니다. 그래서 카운터 회로에 적합하고, 연산이 필요할 때는 위와 같은 변환 작업을 걸쳐야 합니다.
https://youtube.com/playlist?list=PLboXycXmAIDt4ObBRPVj29BuD2d27oRnO
반응형'전자계산기조직응용기사 > 실기 필답형 기출문제 해설' 카테고리의 다른 글
[문제 해설] 8bit 레지스터에 10진수 13이 기억되어 있을 때 left shift 연산을 3회 수행한 결과 값을 10진수로 나타내시오. (0) 2021.08.31 [문제해설] 가상기억장치에서 번지공간이 1024K이고 기억공간이 32K라고 가정할 경우 주기억장치의 주소레지스터는 몇 비트로 구성되는가? (0) 2021.08.30 [문제해설] 다음 논리식 Y = AB + AB' + A'B을 간소화 하시오. (0) 2021.08.24 [문제해설] 그림에서 ROM1에 할당된 메모리 영역은 모두 몇 페이지인가?(단, 1페이지는 256번지) (0) 2021.08.23 [문제해설] 다음 논리식을 최소화 하시오. (0) 2021.08.22