제가 질문한 것에 대한 예시문 답변이 아래와 같이 해주셨습니다.
그런데 틀린부분도 있고 답도 틀린것 같아 다시 질문드립니다.
i가 증가되어 3일 때, INPUT[5]의 값 0과 CONT[i], 즉 CONT[3]의 값 0은 같은 값이므로 0이 출력되므로
CONT[1]은 0, CONT[2]는 1, CONT[3]은 0, CONT[4]는 0 이되므로
출력값은 이진수 0100 출력됩니다. INPUT[1]까지 출력하면 10100 이 됩니다.
하지만 그레이 코드 10110 을 이진수로 변환하면 11011 으로 변환됩니다.
순서도에 오류가 있는것 아닙니까?
답변 해주신 글
안녕하세요.
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이 되었습니다.
오늘도 즐거운 하루 되세요.
안녕하세요.
입력받은 첫번째 비트, 즉 INPUT[1]은 그레이코드인지 이진수인지 판단에만 사용되는 비트로
이후 작업에는 INPUT[2]~INPUT[5]까지만 사용되고 변환됩니다. 또한 출력도 INPUT[2]~INPUT[5]만 출력됩니다.
그러므로 10110이 입력되면 처음 비트가 1이므로 그레이 코드입니다. 그래서 첫 비트를 제외한 나머지
즉 0110이 그레이 코드라는 것이죠.
그래서 0110을 이진수로 변환하는 작업이 수행되어
이진수로 변환된 0101이 출력됩니다.
그래서 INPUT은 5비트 이지만 변환된 값이 저장되고 출력되는 CONT는 4비트 입니다.
오늘도 즐거운 하루 되세요.
-
*2017-03-31 09:37:03
안녕하세요.
입력받은 첫번째 비트, 즉 INPUT[1]은 그레이코드인지 이진수인지 판단에만 사용되는 비트로
이후 작업에는 INPUT[2]~INPUT[5]까지만 사용되고 변환됩니다. 또한 출력도 INPUT[2]~INPUT[5]만 출력됩니다.
그러므로 10110이 입력되면 처음 비트가 1이므로 그레이 코드입니다. 그래서 첫 비트를 제외한 나머지
즉 0110이 그레이 코드라는 것이죠.
그래서 0110을 이진수로 변환하는 작업이 수행되어
이진수로 변환된 0101이 출력됩니다.
그래서 INPUT은 5비트 이지만 변환된 값이 저장되고 출력되는 CONT는 4비트 입니다.
오늘도 즐거운 하루 되세요.