본문 바로가기
기타

그레이 코드

by [Akashic Records] 개발의선지자 2025. 5. 9.

이번 포스팅에서는 그레이 코드에 대해 개인적인 정리를 해보고자 한다.

Gray Code ( = Reflected Binary Code)

연속된 숫자들 사이에 오직 한 비트만 바뀌는 특수한 이진 체계

 

특징

1. 연속된 값간에 오직 1비트 차이만 존재

ex) 

이진수 : 3(011) -> 4(100)  , 3비트 변경

grey code : 3(010) -> 4(110) , 1비트만 변경

 

변환 방식

 

Binary <--> Gray Code

  1. Binary-> Gray
  • 첫 비트는 그대로
  • 그 이후는 이전 비트 XOR 현재 비트 연산

    ex)

  • Binary 1001
  • 첫 비트 1 
  • 2번째 1 XOR(^) 0 = 1
  • 3번째 0 Xor 1 = 1
  • 4번쨰 1 XOR 1 = 0  
  • Grey Code : 1110 (위부터)
  1. Gray -> Biary 
  • 첫비트는 그대로 
  • 다음은 이전 Binary 비트와 Grey 비트를 XOR

예시 

3비트 Grey Code

Decimal Binary Gray Code
0 000 000
1 001 001
2 010 011
3 011 010
4 100 110
5 101 111
6 110 101
7 111 100

 

 

사용 목적 

1. 하드웨어 전이 오류 방지 

일반 이진수에서 값이 바뀔 떄 여러 비트가 동시에 바뀔 수 있다 

하드웨어는 비트가 "완전히" 바뀌기 전에 순간적으로 잘못된 상태를 가질수 있기에, 오류 발생

-> Gray Code는 오직 1비트만 바뀌므로 불완전 전이(Transitional glitch)문제를 줄일수 있음

 

2. ADC 중 digital 데이터 처리 또는 타이밍 민감한 시스템에서 유리

- Binary 코드에서는 값 변경 시 잘못된 중간 상태 감지 가능성이 있다 -> GRAY CODE는 안정적이고 신뢰도 높은 판별이 가능

- 병렬 데이터 처리 중 동기화 문제 발생 가능성을 낮추어 신호간 지터(Jitter)를 줄이는데 도움이 된다.

'기타' 카테고리의 다른 글

ATR과 APDU란?  (0) 2025.05.25