책 내용 질문하기
그레이코드변환
도서
2017 시나공 정보처리기사 실기(산업기사 포함) 특별개정판
페이지
230
조회수
101
작성일
2017-03-29
작성자
첨부파일

230쪽 순서도를 따라서 그레이코드일때는 잘 되지만

이진수 경우를 순서도 따라서 하면은 답이 이상하게 나옵니다.

예를들면 INPUT 배열에 10110 이 들어있다고 가정하면

출력값이 이진수 0100 이 출력되는 것 같습니다.

제가 잘못이해한건지...

이해하기 쉽게 설명좀 해주세요.

답변
2017-03-30 10:20:21

안녕하세요.

10110이 입력되었다면 첫 번째 비트가 1이므로 그레이코드입니다.

그러므로 0110을 이진수로 변환하는 과정이 수행됩니다.

CONT[1]에는 INPUT[2], 즉 0이 저장되어 있습니다.

⑤번에서 Yes가 되어 ⑥~⑨번을 수행합니다.

i는 1부터 3까지 1씩 증가하므로

i가 1일 때

INPUT[i+2], 즉 INPUT[3]의 값 1과 CONT[i], 즉 CONT[1]의 값 0을 비교합니다. 같지 않으므로 NO가 되어

⑨번을 수행합니다.

CONT[i+1], 즉 CONT[2]에 1을 저장합니다. CONT[1]은 0, CONT[2]는 1이 되었습니다.

i가 증가되어 2일 때

INPUT[i+2], 즉 INPUT[4]의 값 1과 CONT[i], 즉 CONT[2]의 값 1을 비교합니다. 같으므로 Yes가 되어

⑧번을 수행합니다.

CONT[i+1], 즉 CONT[3]에 0을 저장합니다. CONT[1]은 0, CONT[2]는 1, CONT[3]은 0이 되었습니다.

i가 증가되어 3일 때

INPUT[i+2], 즉 INPUT[5]의 값 0과 CONT[i], 즉 CONT[3]의 값 0을 비교합니다. 같지 않으므로 NO가 되어

⑨번을 수행합니다.

CONT[i+1], 즉 CONT[4]에 1을 저장합니다. CONT[1]은 0, CONT[2]는 1, CONT[3]은 0, CONT[4]는 1이 되었습니다.

오늘도 즐거운 하루 되세요.

  • *
    2017-03-30 10:20:21

    안녕하세요.

    10110이 입력되었다면 첫 번째 비트가 1이므로 그레이코드입니다.

    그러므로 0110을 이진수로 변환하는 과정이 수행됩니다.

    CONT[1]에는 INPUT[2], 즉 0이 저장되어 있습니다.

    ⑤번에서 Yes가 되어 ⑥~⑨번을 수행합니다.

    i는 1부터 3까지 1씩 증가하므로

    i가 1일 때

    INPUT[i+2], 즉 INPUT[3]의 값 1과 CONT[i], 즉 CONT[1]의 값 0을 비교합니다. 같지 않으므로 NO가 되어

    ⑨번을 수행합니다.

    CONT[i+1], 즉 CONT[2]에 1을 저장합니다. CONT[1]은 0, CONT[2]는 1이 되었습니다.

    i가 증가되어 2일 때

    INPUT[i+2], 즉 INPUT[4]의 값 1과 CONT[i], 즉 CONT[2]의 값 1을 비교합니다. 같으므로 Yes가 되어

    ⑧번을 수행합니다.

    CONT[i+1], 즉 CONT[3]에 0을 저장합니다. CONT[1]은 0, CONT[2]는 1, CONT[3]은 0이 되었습니다.

    i가 증가되어 3일 때

    INPUT[i+2], 즉 INPUT[5]의 값 0과 CONT[i], 즉 CONT[3]의 값 0을 비교합니다. 같지 않으므로 NO가 되어

    ⑨번을 수행합니다.

    CONT[i+1], 즉 CONT[4]에 1을 저장합니다. CONT[1]은 0, CONT[2]는 1, CONT[3]은 0, CONT[4]는 1이 되었습니다.

    오늘도 즐거운 하루 되세요.

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.