진법 변환에 대해서 배우는 내용 중에 하나가 Gray code이다.
Gray code는 0과 1로 구성된 2진법에서 변환된 코드이다.
십진법의 경우 이진법 변환뒤에 Gray code로 변환이 가능하고
다른 진법도 마찬가지로 2진법으로 변환 뒤에 Gray code로 변환할 수 있다.
Gray code를 사용하는 이유에 대해서 간략하게 살펴보자면,
Gray code를 사용함으로써 데이터 송수신 과정에서의 변경 사항을 파악하기 용이하다.
따라서 데이터 자체가 변경되었다는 걸 발견할 뿐만 아니라 시스템 에러도 찾기 수월하다.
Gray code가 어떤식으로 변환되어 구성되는지 살펴보면 더욱 이해가 쉬울 것이다.
위의 그림 예제를 살펴보자.
1001이라는 binary number가 있다고 가정했을때 Gray code로 변환하기 위해서는 아래와 같은 순서를 따른다.
1. MSB는 그대로 표기
2. 두 숫자가 같은지 다른지 확인
3. 같은 숫자일 경우 0, 다른 숫자일 경우 1 산출
일단 MSB란 Most Most Significant Bit의 줄임말로 데이터 타입을 나타내는 bit를 의미한다.
하지만 여기서 일단 Gray code로 변환하는 방법을 살펴볼 예정이기에 첫번째 bit는 그대로 표기된다고만 알고 있자.
첫번째 bit가 1이니 1이 그대로 표기된다. 만약에 0일 경우 0으로 표기하면 된다.
첫번째 bit를 표기하고 나서는 첫번째 bit와 두번째 bit를 비교해야 한다.
첫번째와 두번째 비트가 1과 0이기에 다르다.
따라서 비교 bit가 다를 경우 1이 산출된다.
반대로 두번째와 세번째 bit처럼 비교 bit가 같을 경우 0이 산출된다.
이것이 binary number를 gray code로 변환하는 방법이다.
아래 영상으 binary number를 gray code로 변환하는 방법을
예제를 통해서 자세하고 nice하게 설명해주고 있어서 참고하기 좋다.
또한 Gray code를 Binary number로 변환하는 방법도 담고 있다.
www.youtube.com/watch?v=cbmh1DPPQyI&t=245s
아래 링크는 Gray code를 다른 진법으로 변환하는 온라인 계산기 사이트이다.
해당 사이트를 통해서 Gray code를 자연스럽게 변환하는 방법을 이해할 수 있다.
'Computer Science' 카테고리의 다른 글
[Porgramming] BCD 8-4-2-1 weighted code, 6-3-1-1 weighted code (0) | 2021.05.10 |
---|---|
[Programming] IoT(사물 인터넷)과 4차 산업 기술 간의 연관성 (0) | 2021.02.28 |
[Programming] Fundamental law of Boolean algebra (0) | 2021.02.22 |
[Programming] 이진법 십진법 변환 (Binary to Decimal) (0) | 2021.02.21 |
[Programming] The Infinite Hotel (0) | 2021.02.09 |
댓글