본문 바로가기
Study/Algorithm_정보처리기사

[정보처리기사][알고리즘][수학] 그레이코드 변환하기

by 푸민 2015. 8. 15.
반응형



Q. 0 또는 1로 입력되는 다섯 개의 숫자를 배열에 입력 받아 그레이 코드 또는 이진수로 변환하는 순서도를 완성하시오.


1. 입력된 자료와 변환된 자료가 저장될 배열을 선언한다.

 

2. 5개의 자료를 입력받기 위해 i는 1에서 5가 될때까지 1씩 증가하면서 반복한다.

 

1) 변환할 자료를 입력받는다. 반복을 체크한다.

 

3. 첫번째로 변환되는 비트를 옮긴다. 첫번째 비트는 이진수나 그레이코드에 관계없이 입력받은 자료를 그대로 옮기며, 실제 데이터는 입력받은 배열의 두번째부터라는 것을 생각한다.

 

4. 입력받은 자료의 첫번째 비트가 1이면 이진수로 변환하는 것이므로 Yes로 아니면 그레이코드로 변환하는 것이므로 No로 간다.

 

1) Yes일 경우, 3개의 비트를 이진수로 변환하기 위해 i는 1에서 3이 될때까지 1씩 증가하ㅕㄴ서 반복한다.

 

A. XOR 연산동작을 수행하기 위해 두 수를 비교한다. 그레이코드를 이진수로 변환할때는 왼쪽에 구해놓은 이진수 비트와 변경할 그레이코드의 해당 번째 비트를 XOR 연산한다는 것을 생각한다.

 

a. 같다면, 배열에 0을 저장한다. 두번째 이진수 비트부터 구한다는 것을 생각한다. 그리고 반복 체크한다.

 

b. 다르다면, 배열에 1을 저장한다. 두번째 이진수 비트부터 구한다는 것을 생각한다. 그리고 반복 체크한다.

 

2) No일 경우, 3개의 비트를 그레이코드로 변환하기 위해 i는 1에서 3이 될때까지 1씩 증가하면서 반복한다.

 

A. XOR 연산동작을 수행하기 위해 두수를 비교한다. 이진수를 그레이코드로 변환할때는 변경할 이진수의 해당 비트와 그 왼족의 비트를 XOR 연산한다는 것을 생각한다.

 

a. 같다면, 배열에 0을 저장한다. 두번째 그레이비트부터 구한다는 것을 생각한다. 그리고 반복 체크한다.

 

b. 다르다면, 배열에 1을 저장한다. 두번째 그레이비트부터 구한다는 것을 생각한다. 그리고 반복 체크한다.

 

5. 모든 반복이 종료되면, 출력을 위해 첫번째 비트가 1이면 '이진수'를 아니면 '그레이코드'를 출력한다.

 

6. 변환결과를 반복하여 출력한다.



해당 글은 제가 만든 어플을 기준으로 작성하였습니다.

더 많은 정보는 알고리즘 어플을 이용해주세요.

반응형

댓글