관리 메뉴

도드넷

정보처리기능사 실기 기출유형#9 - 그레이코드 알고리즘 본문

창고/정보처리기능사[완]

정보처리기능사 실기 기출유형#9 - 그레이코드 알고리즘

도드! 2016. 5. 10. 13:14
반응형




I will move heaven and earth for you.


정보처리기능사 실기 요점정리및 기출유형#9 - 그레이코드 알고리즘


1. 그레이코드란?

- 그레이코드는 이진수 표현 기법중 하나로 수를 표현할때 일반 이진수와는 다르게 한비트씩 변화한다.

(중요한건 아님)


2. 그레이코드로 만드는 방법

- 그레이코드 만드는 방법은 다음과 같다.

- 맨앞자리를 그대로 내린다.

- 첫자리와 둘째자리를 XOR 연산을 해서 내린다.

- 둘째자리와 셋째자리를 XOR 연산 해서 내린다.

...


3. XOR 연산

- 10 01 으로 다르면 1

- 11 00 으로 같으면 0

을 산출하는 연산이다.


4. 그레이코드를 다시 이진수로 바꾸는 방법

- 그레이코드 만드는법과 유사하지만, 내린수와 XOR을 한다는 점이 다르다.

- 맨앞자리를 그대로 내린다.

- 내린수와 두번빼 자리를 XOR연산해서 내린다.

- 내린수와 세번쨰 자리를 XOR연산해서 내린다.

...


5. 이진수 -> 그레이코드 알고리즘

- 이진수 배열을 입력받는다 A(10)

- 그레이코드를 저장할 배열 B(10)을 정의한다.

- 그레이코드가 담길 배열 B(10) 맨앞 첫번째 원소 B(1) 에 A(1)을 저장한다.

반복문 i=1, 9, 1

- A(i)과 A(i+1)를 비교해 같으면 B(i+1)에 0을 넣고 다르면 B(i+1)에 1을 넣게 한다.


6. 그레이코드 -> 이진수 알고리즘

- 그레이코드 배열을 입력받는다 B(10)

- 이진수를 저장할 배열 A(10)을 정의한다.

- 이진수가 담길 배열 A(10) 맨앞 첫번째 원소A(1)에 B(1)을 저장한다.

반복문 i=1, 9, 1

- A(i) 와 B(i+1)을 비교해서 같으면 A(i+1)에 0을 넣고 다르면 A(i+1)에 1을 넣는다.


7. 그레이코드 알고리즘의 핵심

- i 번째와 i+1 번째를 비교해서 같으면0 다르면1로 i+1번째에 저장한다. 


* WTF..?

실제 그레이코드 문제를 보면 입력받은 코드의 맨앞자리 비트숫자가 1이면 그레이코드로 인식, 이진수로 변환하고0 이면 이진수로 인식, 그레이코드로 변환하게 하는데, 맨앞 비트는 판단용으로 변환에서 제하고 조심스럽게 입력측 인덱스 +1 해서 생각하면 됨.





반응형
Comments