본문 바로가기

ETC

그레이 코드 (Gray Code)

그레이코드 : 비가중치 코드이며 연산에는 부적합하지만 어떤 코드로부터  그 다음의 코드로 증가하는데는 하나의 비트만 바꾸면 되는 코드

그럼 이 그레이코드가 왜필요한가?


단순히 바이너리코드 체계를 보면 7 -->> 8로 변화할 때 0111 -->> 1000로 4비트가 동시에 바뀌게 된다.
그런데 동시에 바뀐다고는 하지만 약간씩의 시간차를 가지고 바뀌게 되지 때문에,
자료를 읽을 때
 최악의 경우에는 잘못된 자료를 읽게 되는 오류가 발생하게 된다.
그것을 줄이기 위한 그레이 코드!



--------------------- 그레이 코드로 변환하는 방법 ---------------------

기본 법칙 : 첫째자리수는 그대로, 그 다음 수는 이전 자리 수와 현재 자리 수의 합으로 변환


만약 11011이라는 2진수를 그레이 코드로 변환한다고 해 보자.


첫번째 자리 1 은 그냥 1
두번째 자리 1 은       (이전자리)1 + (현재자리)1= 0
세번째 자리 0 은    (이전자리)1 + (현재자리)0= 1
네번째 자리 1 은     (이전자리)0 + (현재자리)1= 1
다섯번째 자리 1은   (이전자리)1  + (현재자리)1= 0


따라서 2진수 11011를 그레이 코드로 변환하면 -> 10110


반응형